Preg_match无论如何

时间:2012-11-27 18:23:56

标签: php

我一直试图将我的一个变量与另一个变量匹配。所有我想要的变量让我们说$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'

2 个答案:

答案 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';

当前者可以完成工作时,总是更喜欢字符串函数和正则表达式。