次のような文字列があります。
$string = '[Canada] [United States]';
このようなものを検出する必要があります
if($string contains Canada) {
// Do stuff for Canada
}
次のような文字列があります。
$string = '[Canada] [United States]';
このようなものを検出する必要があります
if($string contains Canada) {
// Do stuff for Canada
}
[
との間のすべてのテキストを引き出して]
、それが結果の配列にあるかどうかを確認できます。
preg_match_all('/\[(.*?)\]/', $string, $matches);
if (in_array('Canada', $matches[1])) {
echo 'Hello, Canada!';
}
部分文字列検索関数を使用しただけの場合、検索した文字列が大括弧で囲まれた大きなブロックの部分文字列である可能性があります。
単純なテキストマッチングを行っていて、正規表現エンジンを使用するオーバーヘッドを望まない場合は、strpos
関数が探しているものである可能性があります。詳細については、 strposのPHPマニュアルページを参照してください。
if(strpos($string,"Canada")!==FALSE){
// Do stuff for Canada
}
この関数の使用は、プログラマーが一致する場所ではなく、一致するものを見つけることだけを気にするというマニュアルのおかげで、より速く、メモリ消費量が少ないため、strpos()
優先されます。strstr()
strpos()
を使用しstrstr()
ます。