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(対象文字列, 検索文字列)