0

私は自分の変数を他の変数と一致させようとしています。私が望むの$wordは、その変数が他の変数と一致するものに関係なく、それ$search_inに応じて結果を言い、エコーすることです。

私は使用していif (preg_match("/$word/i", $search_in)) echo "matches";ますが、DB から返される値に正規表現を適用すると、次のような多くの警告が表示されます。

警告: preg_match() [function.preg-match]: 不明な修飾子 '('

警告: preg_match() [function.preg-match]: 不明な修飾子 'T'

4

2 に答える 2

3

$wordに存在するかどうかを確認するだけの場合は$search_in、次を使用できます。

if(stripos($search_in, $word) !== FALSE) echo "matches";

PHP のマニュアルには次のように書かれています。

ある文字列が別の文字列に含まれているかどうかのみを確認する場合は、preg_match() を使用しないでください。代わりに strpos() または strstr() を使用してください。

于 2012-11-27T18:27:07.830 に答える
2

$wordほとんどの場合、スラッシュが含まれています。

stripos正規表現の力はまったく必要ないため、これを使用する必要があります。

if (stripos($search_in, $word) !== false) echo 'matches';

記録のために、preg_matchそれを行う方法は次のようになります。

if (preg_match('/'.preg_quote($word, '/').'/i', $search_in)) echo 'matches';

前者が仕事をすることができるときは、常に文字列関数を正規表現より優先してください。

于 2012-11-27T18:28:03.657 に答える