输入包含“/”时的PHP错误

时间:2012-03-05 15:08:08

标签: php preg-match

当输入字符串包含“/”符号时,我收到PHP错误:

警告:preg_match()[function.preg-match]:未知修饰符

我该如何解决?

$token = '/<'.$tag.'[^>]*>(.*\b'.$keyword.'\b.*)<\/'.$tag.'>/siU';
if(preg_match($token, &$content, $matches))
{
    $match = 1;
}
return $match;

3 个答案:

答案 0 :(得分:5)

您应该使用preg_quote()来转义标记和关键字,如下所示:

$token = '/<' . preg_quote($tag, '/') . '[^>]*>(.*\b' . preg_quote($keyword, '/')
         . '\b.*)<\/' . preg_quote($tag, '/') . '>/siU';

答案 1 :(得分:2)

preg_quote函数可以帮助您解决此问题。

答案 2 :(得分:1)

您在regexp模式中使用输入 - 您应该转义所有特殊序列。试试addcslashes功能