当输入字符串包含“/”符号时,我收到PHP错误:
警告:preg_match()[function.preg-match]:未知修饰符
我该如何解决?
$token = '/<'.$tag.'[^>]*>(.*\b'.$keyword.'\b.*)<\/'.$tag.'>/siU';
if(preg_match($token, &$content, $matches))
{
$match = 1;
}
return $match;
答案 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
功能