【PHP・文字列関数】文字列を検索する関数の使い方

アイキャッチ画像_文字列検索 PHP
PHP
この記事は約7分で読めます。
Recommended Articles

【PHP・文字列関数】文字列を検索する関数の使い方

ここで解説する関数は、すべて文字列を検索する関数です。それぞれ以下の違いがあります。

関数検索時の注意事項戻り値
stristr大文字と小文字を区別しない見つかった場所以降の文字列
strstr大文字と小文字を区別する見つかった場所以降の文字列
strrpos検索開始位置を指定できる検索する文字列が最後に見つかった位置
mb_strrposマルチバイトを考慮して文字を検索する検索する文字列が最後に見つかった位置
strpos特になし検索する文字列が最初に見つかった位置
mb_strposマルチバイトを考慮して文字を検索する検索する文字列が最初に見つかった位置
strrchr検索する文字は1文字のみ見つかった場所以降の文字列

stristr関数の使い方(大文字と小文字を区別せずに文字列を検索する)

php3~ で使用できます。

stristr関数 : 書式
stristr(処理対象の文字列, 検索する文字列)

戻り値:文字列が見つかった場所以降の文字列

 stristr関数は、大文字と小文字を区別せずに文字列を検索します。検索した文字列が見つかった場所から後ろの文字列を取得します。
stristr関数 : 使用例
  • 大文字と小文字を区別せずに文字列を検索する
    echo strisrt("abcdefghijklmn", "EFG"); →「efghijklmn」を出力
    echo strisrt("abcde", "Abc"); →「abcde」を出力
    echo stristr("ABCDE", "XYZ"); →空文字を出力

strstr関数の使い方(大文字と小文字を区別して文字列を検索する)

php3~ で使用できます。

strstr関数 : 書式
strstr(処理対象の文字列, 検索する文字列)

戻り値:文字列が見つかった場所以降の文字列、見つからなかった場合は、FALSE

 strstr関数は、大文字と小文字を区別して文字列を検索します。検索した文字列が見つかった場所から後ろの文字列を取得します。
 文字列を探して一部を取得するだけてはなく、文字列が含まれるかを調べるという使われ方もできます。見つかったときの戻り値が「0」でない「TRUE」として使えることを利用して、文字列が含まれるか調査して処理を分岐するif文で使われています。
strstr関数 : 使用例
  • 大文字と小文字を区別して文字列を検索する
    $str = "ABCDEFGHIJKLMN";
    $str = strstr($str, "bcd"); →変数$strに「FALSE」をセット
  • 文字列が含まれているか調査する
    $str = "ABCDEFGHIJKLMN";
    if (strstr($str, "GHI")) {
      echo "含まれている";
    }

    実行結果 「含まれている」を出力

strrpos関数の使い方(文字列を検索する)

php3~ で使用できます。

strrpos関数 : 書式
strpos(処理対象の文字列, 検索する文字列)

戻り値:文字列が最後に見つかった位置(数値)、見つからなかった場合は、FALSE

strrpos関数は文字列から文字を検索して、最後に見つかった位置を数値で取得します。strposと似ていますが、strpos関数は検索した文字列が最初に見つかった位置を取得する点が違います。

PHP4までは、検索文字は1文字でしたが、PHP5からは2文字以上の指定が可能です。

strrpos関数 : 使用例
  • 文字列を検索して最後に見つかった位置を取得する
    echo strrpos("123123123", "1"); →「6」を出力①
    echo strrpos("123123123", "12345"); →何も表示されない②

    <解説>
     ②の使用例は検索する文字として12345を指定しました。PHP4までは検索使う文字は先頭の1文字だけなので①の使用例と同じ意味となり「6」を出力しますが、PHP5ではFALSEを取得することになります。

mb_strrpos関数の使い方(マルチバイト文字列を検索する)

php4.0.6~ で使用できます。

mb_strrpos関数 : 書式
mb_strpos(処理対象のマルチバイト文字列, 検索するマルチバイト文字列)

戻り値:文字列が最後に見つかった位置(数値)、見つからなかった場合は、FALSE

mb_strrpos関数はマルチバイト文字列を対象にマルチバイト文字を検索して、最後に見つかった位置を数値で取得します。

mb_strrpos関数 : 使用例
  • 文字列を検索して最後に見つかった位置を取得する
    echo mb_strrpos("愛知県名古屋市", "名"); →「3」を出力

strpos関数の使い方(文字列を検索する)

php3~ で使用できます。

strpos関数 : 書式
strpos(処理対象の文字列, 検索する文字列)

戻り値:文字列が最初に見つかった位置(数値)、見つからない場合は、FALSE

 strpos関数は文字列を検索して、最初に見つかった位置を取得します。検索を開始する位置も指定できます。

・位置を指定するとき1文字目は「0」となります。
・大文字と小文字は区別して検索します。

strpos関数 : 使用例
  • 文字列を検索する
    echo strpos("abcde", "c"); →「2」を出力
    echo strpos("abcde", "de"); →「3」を出力
    echo strpos("abcAB", "AB"); →「3」を出力
  • 指定位置以降の文字列を検索する
    echo strpos("ABCABC", "C", 5); →「5」を出力

    <解説>
     「ABCABC」という文字列の3文字目、6文字目がCですが、3番目の引数で5を指定して、5文字目以降を検索しているので、「5」を出力します。

  • 文字列の検索結果に応じて処理を分岐する
    $str = "ABCDEFG";
    if (!strpos($str, "X")){
      echo "見つかりません。"
    }
    実行結果 「見つかりません。」が出力される

mb_strpos関数の使い方(マルチバイト文字列を検索する)

php4.0.6~ で使用できます。

mb_strpos関数 : 書式
mb_strpos(処理対象のマルチバイト文字列, 検索するマルチバイト文字列)

戻り値:文字列が最初に見つかった位置(数値)、見つからない場合は、FALSE

 mb_strpos関数は文字列を検索して、最初に見つかった位置を取得します。
mb_strpos関数 : 使用例
  • マルチバイトを考慮して文字列を検索する
    echo mb_strpos("あいう","う"); →「2」を出力

strrchr関数の使い方(文字列を検索する)

php3~ で使用できます。

strrchr関数 : 書式
strrchr(処理対象の文字列, 検索する1文字)

戻り値:文字が最後に見つかった場所以降の文字列

 strrchr関数は文字列から、指定された1文字を検索して、最後に見つかった場所以降の文字列を取得します。

ドメイン名やファイルの拡張子など、特定の文字列を切り取って取得する用途で使うことができます。

strrchr関数 : 使用例
  • 文字列を検索する
    $str = 'ABCABCABC';
    echo strrchr($str, "A"); →「ABC」を出力
  • ドメイン名を取得する
    $str = 'aaa@domain.com';
    $str = strrchr($str, "@");
    echo substr($str, 1); →「domain.com」を出力
  • ファイルの拡張子を取得する
    $str = "aaa.php";
    $str = strrchr($str,".");
    echo substr($str, 1); →「php」を出力

関連リンク

PHPトップページ
PHP入門 & 関数リファレンス
PHPの初心者からベテランまで活用できるページです。初めての方はもちろん、もう一度基礎から学びなおしたい方は、基礎知識のページを順に読んで理解しましょう。ベテランの方向けには、関数の書式・パラメーターを調べられる構成になっています。PHPプログラム作成時にご活用下さい。
Recommended Articles