0

変数に文字列の最初の部分が含まれているかどうかを確認できる必要があります。たとえば、「フーバズ xy」です。"foobaz xy" の後のすべては、一致では無視できます。これも大文字と小文字を区別しない必要があり、foobaz と xy の間にはスペースが必要です。これを処理する組み込み関数が PHP に既に存在するか、またはこれを行うには正規表現が必要ですか? 最後になりましたが、実行時間が速いメソッドが複数ある場合はどうなりますか? ありがとう!

4

4 に答える 4

3

組み込み関数はありませんが、同じことを達成できる小さな回避策があります。次の例を確認してください。

$string = "foobaz xyewew";
if (stripos($string, "foobaz xy") === 0) {
    echo "It starts with foobaz xy";
}
于 2012-07-29T12:18:19.883 に答える
0

最初の答えは正解です。詳細については、http: //www.php.net/manual/en/function.stripos.phpをご覧ください。単純な文字列チェックで正規表現を使用することは悪い習慣であることを常に忘れないでください。

于 2012-07-29T12:37:25.930 に答える
0

大文字と小文字を区別しない問題については、新しい文字列を別の文字列にコピーして、すべて小文字に変換すると、大文字と小文字が区別されなくなります。

文字列 A= foobaz xy および b=sth sth sth とすると、文字列 b の部分文字列を取得するだけでよく、これは常に foobaz xy のサイズになります。したがって、b の文字数が foobaz xy より小さい場合、自動的に割引されます。そうでない場合は、部分文字列を定数文字列 A と比較する必要があり、それで問題が解決します。

ここでphp部分文字列を参照してください:

部分文字列と文字列を比較するには、こちらの strcmp を参照してください 文字 列をすべて小文字に変換するには、こちらを参照してください

于 2012-07-29T12:19:16.167 に答える
0

それを確認する最も速い方法:

$variable  = "FooBaz xy test string";
$isContain = strpos(strlower($variable, "foobaz xy")) === 0;
于 2012-07-29T12:20:02.533 に答える