PHP: strposで文字の出現位置を取得する
strposを使うと、指定した文字の最初の出現位置を取得する事ができます。
下記の例は、文字列「abcdef」の中の「b」の位置を取得しています。
<?php $haystack = 'abcdef'; var_dump(strpos($haystack, 'b'));
実行結果
int(1)
注意点
文字列の先頭1文字目に該当する場合、返り値は「0」を返します。
一方、指定した文字が文字列の中に存在しない場合には、falseを返します。
文字が見つからない場合に処理を分けたい場合、次のような記述はNGです。なぜかと言うと、下記のような記述をすると厳密な比較が行われないため、返り値が「0」の場合も「false」と同じ判定結果になってしまうからです。
NGの例
if (!strpos($haystack, $needle)) { // 何かの処理 }
ただしくは下記の通り厳密な比較を行う必要があります。
OKの例
if (strpos($haystack, $needle) === false) { // }