【PHP・文字列関数】文字列を検索する関数の使い方
ここで解説する関数は、すべて文字列を検索する関数です。それぞれ以下の違いがあります。
関数 | 検索時の注意事項 | 戻り値 |
---|---|---|
stristr | 大文字と小文字を区別しない | 見つかった場所以降の文字列 |
strstr | 大文字と小文字を区別する | 見つかった場所以降の文字列 |
strrpos | 検索開始位置を指定できる | 検索する文字列が最後に見つかった位置 |
mb_strrpos | マルチバイトを考慮して文字を検索する | 検索する文字列が最後に見つかった位置 |
strpos | 特になし | 検索する文字列が最初に見つかった位置 |
mb_strpos | マルチバイトを考慮して文字を検索する | 検索する文字列が最初に見つかった位置 |
strrchr | 検索する文字は1文字のみ | 見つかった場所以降の文字列 |
stristr関数の使い方(大文字と小文字を区別せずに文字列を検索する)
php3~ で使用できます。
stristr関数 : 書式
戻り値:文字列が見つかった場所以降の文字列
stristr関数 : 使用例
- 大文字と小文字を区別せずに文字列を検索するecho strisrt("abcdefghijklmn", "EFG"); →「efghijklmn」を出力
echo strisrt("abcde", "Abc"); →「abcde」を出力
echo stristr("ABCDE", "XYZ"); →空文字を出力
strstr関数の使い方(大文字と小文字を区別して文字列を検索する)
php3~ で使用できます。
strstr関数 : 書式
戻り値:文字列が見つかった場所以降の文字列、見つからなかった場合は、FALSE
strstr関数 : 使用例
- 大文字と小文字を区別して文字列を検索する$str = "ABCDEFGHIJKLMN";
$str = strstr($str, "bcd"); →変数$strに「FALSE」をセット
- 文字列が含まれているか調査する$str = "ABCDEFGHIJKLMN";
if (strstr($str, "GHI")) {
echo "含まれている";
}
実行結果 「含まれている」を出力
strrpos関数の使い方(文字列を検索する)
php3~ で使用できます。
strrpos関数 : 書式
戻り値:文字列が最後に見つかった位置(数値)、見つからなかった場合は、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関数 : 書式
戻り値:文字列が最後に見つかった位置(数値)、見つからなかった場合は、FALSE
mb_strrpos関数はマルチバイト文字列を対象にマルチバイト文字を検索して、最後に見つかった位置を数値で取得します。
mb_strrpos関数 : 使用例
- 文字列を検索して最後に見つかった位置を取得するecho mb_strrpos("愛知県名古屋市", "名"); →「3」を出力
strpos関数の使い方(文字列を検索する)
php3~ で使用できます。
strpos関数 : 書式
戻り値:文字列が最初に見つかった位置(数値)、見つからない場合は、FALSE
・位置を指定するとき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関数 : 書式
戻り値:文字列が最初に見つかった位置(数値)、見つからない場合は、FALSE
mb_strpos関数 : 使用例
- マルチバイトを考慮して文字列を検索するecho mb_strpos("あいう","う"); →「2」を出力
strrchr関数の使い方(文字列を検索する)
php3~ で使用できます。
strrchr関数 : 書式
戻り値:文字が最後に見つかった場所以降の文字列
ドメイン名やファイルの拡張子など、特定の文字列を切り取って取得する用途で使うことができます。
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」を出力