1

次のような文字列があります。

$string = '[Canada] [United States]';

このようなものを検出する必要があります

if($string contains Canada) {
 // Do stuff for Canada
}
4

3 に答える 3

4

[との間のすべてのテキストを引き出して]、それが結果の配列にあるかどうかを確認できます。

preg_match_all('/\[(.*?)\]/', $string, $matches);

if (in_array('Canada', $matches[1])) {
    echo 'Hello, Canada!';
}

コードパッド

部分文字列検索関数を使用しただけの場合、検索した文字列が大括弧で囲まれた大きなブロックの部分文字列である可能性があります。

于 2012-04-07T02:59:56.867 に答える
2

単純なテキストマッチングを行っていて、正規表現エンジンを使用するオーバーヘッドを望まない場合は、strpos関数が探しているものである可能性があります。詳細については、 strposのPHPマニュアルページを参照してください。

if(strpos($string,"Canada")!==FALSE){
    // Do stuff for Canada
}

この関数の使用は、プログラマーが一致する場所ではなく、一致するものを見つけることだけを気にするというマニュアルのおかげで、より速く、メモリ消費量が少ないため、strpos()優先されます。strstr()strpos()

于 2012-04-07T03:04:16.770 に答える
0

を使用しstrstr()ます。

于 2012-04-07T02:59:37.100 に答える