PHP: 文字列を検索する mb_strpos(), strpos()
文字列検索 mb_strpos()
PHPで文字列を検索して見つかった位置を取得したい場合は、 mb_strpos()関数または strpos()関数を使用します。
書式
mb_strpos(対象文字列, 検索文字列) mb_strpos(対象文字列, 検索文字列[, 開始])
戻り値は文字列が最初に見つかった位置です。
先頭の場合は「0」が戻り、
見つからなかった場合の戻り値は「false」。
マルチバイト文字を使用しない場合はstrpos()関数が使えます。
下はmb_strpos()関数の使用例です。
$str = "abcdefg"; print(mb_strpos($str, "f") . "\n"); // 5 print(mb_strpos($str, "x")); // "" (falseなので空文字)
特定の文字列が存在するかどうかを知りたい場合
特定の文字列が存在する場合と、 しない場合で処理を分岐するには、次のように記述します。
存在する場合は見つかった位置(先頭は0)を返しますから、 「==」だと falseになってしまいます。 型までチェックするために「==」ではなく、「===」を使用します。
$str = "abcdefg"; $str_search = "f"; if (mb_strpos($str, $str_search) === false) { // 存在しない場合の処理 } else { // 存在する場合の処理 }
特定の文字列が存在する場合だけを知りたいときは、 否定の論理演算子「!」を使って次のように記述します。
「!=」ではなく「!==」を使ってください。
if (strpos($str, $str_search) !== false ) { // 存在する場合の処理 }
最後から文字列検索をする mb_strrpos(), strrpos()
最後から文字列検索をしたい場合は、
mb_strrpos()関数またはstrrpos()関数を使います。
「str」と「pos」の間に「r」が入ります。
書式
mb_strrpos(対象文字列, 検索文字列)