PHPで文字列に特定の文字が含まれているか調べる
PHPで文字列に特定の文字が含まれているかどうかを調べるには、以下のようにstrpos関数を使用します。
<?php
$string = "Hello World";
if(strpos($string, "World") !== false) {
echo "文字列にWorldが含まれています";
} else {
echo "文字列にWorldが含まれていません";
}
?>
上記のコードでは、文字列変数 $string
に "Hello World" という文字列を代入し、strpos()
関数を使用して、文字列中に "World" が含まれているかどうかを確認しています。 strpos()
関数は、指定された文字列が最初に出現する位置を返します。文字列中に指定された文字列が含まれていない場合は、 false
を返します。
上記の例では、 strpos()
関数が false
を返す場合に備えて、 !==
演算子を使用して、戻り値のデータ型を厳密に比較しています。これにより、 strpos()
関数が 0
を返した場合に、誤った結果が得られることがありません。
strpos()のオプション引数について
strpos()
関数には、3つ目のオプションの引数を指定することができます。この引数は、検索を開始する位置を指定するものです。
具体的には、以下のように使用します。
strpos( string $haystack, mixed $needle [, int $offset = 0 ] ): int|false
この引数のデフォルト値は0で、指定された文字列の先頭から検索を始めます。しかし、この引数に正の整数を指定すると、その位置から検索を開始することができます。
例えば、以下のコードでは、文字列中に複数の "World" が含まれている場合に、2番目以降の "World" を検索する方法を示しています。
<?php
$string = "Hello World! World is beautiful.";
$pos = strpos($string, "World", 7); // 7文字目以降から検索を開始する
if ($pos !== false) {
echo "文字列にWorldが含まれています";
} else {
echo "文字列にWorldが含まれていません";
}
?>
上記のコードでは、文字列変数 $string
に "Hello World! World is beautiful." という文字列を代入し、strpos()
関数を使用して、文字列中に "World" が含まれているかどうかを確認しています。 2番目以降の "World" を検索するには、3つ目の引数に 7
を指定しています。これにより、文字列の7文字目以降から検索を開始します。