输入包含"/"时的PHP错误

Reg*_*dit 3 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;
Run Code Online (Sandbox Code Playgroud)

Vyk*_*tor 5

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

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