PHPで文字列を含むかを調べる方法はいくつかあるので調べたいと思います。
strpos
文字列内の部分文字列が最初に現れる場所を見つける関数です。文字列が含まれているかを調べるだけでしたらこちらの関数が一番高速なのでこの関数を使いましょう。注意として文字列の開始位置は 0 であり、1 ではないことを意識せずにそのまま
$str = 'apple'; if(strpos($str,'a')){ echo 'has a!'; //echo 0 }
などとするとstrposは0を返すので条件文は実行されません。
if(strpos($str,'a') !== false){ echo 'has a!'; }
文字列が見つからなかった場合はfalseを返すのでこのように比較して使いましょう。
strstr(stristr)
文字列が最初に現れる位置を見つける関数です。strposは文字の場所を返しましたが、この関数は最初に現れる場所を含めてそこから文字列の終わりまでを返します。大文字小文字を区別しない場合stristrを使います。
$email = 'kimera@kimera.com'; echo strstr($str,'@'); //echo @kimera.com
preg_match
正規表現によるマッチングを行う関数です
if (preg_match("/CakePHP/i", "このサービスはcakephpで開発されています")) { echo "マッチしました。"; } else { echo "マッチしませんでした。"; } } //echo マッチしました