我一直试图将我的一个变量与另一个变量匹配。所有我想要的变量让我们说$word
包含它与其他变量匹配的内容,让我们说$search_in
并相应地回显结果。
我一直在使用if (preg_match("/$word/i", $search_in)) echo "matches";
但是我收到了很多警告,如下所示,因为我对从DB返回的值应用了regexp。
警告:preg_match()[function.preg-match]:未知修饰符'('
警告:preg_match()[function.preg-match]:未知修饰符'T'
答案 0 :(得分:3)
如果您只是需要检查$word
中是否存在$search_in
,您可以使用:
if(stripos($search_in, $word) !== FALSE) echo "matches";
正如PHP manual所说:
如果您只想检查另一个字符串中是否包含一个字符串,请不要使用preg_match()。使用strpos()或strstr()代替它们会更快。
答案 1 :(得分:2)
$word
很可能包含斜杠。
你应该使用stripos
,因为根本不需要正则表达式的强大功能:
if (stripos($search_in, $word) !== false) echo 'matches';
对于记录,preg_match
这样做的方式是:
if (preg_match('/'.preg_quote($word, '/').'/i', $search_in)) echo 'matches';
当前者可以完成工作时,总是更喜欢字符串函数和正则表达式。