preg_replace(): 未知修饰符 '\\'

preg_replace(): Unknown modifier '\\'

这可能是有史以来最简单的问题。但我没有写代码,也没有评论。我只是想修复它,因为它在我的网站上引起了很多问题。它在主要文本解析器代码中。

错误:preg_replace():未知修饰符“\” 更完整的错误:PHP 警告:preg_replace():第 1192 行 .../cutout/text/parser.php 中的未知修饰符 '\',引用者:domain/forums /

代码:http://pastebin.com/k98mpF8n 有很多,所以这是最简单的方法。 $text 是参数。看起来它是一个坏词过滤器,但似乎缺少很多东西。对不起,我无法找出正在传递的内容。除非你知道我为什么可以。

-
$text = preg_replace( '/(^|\W)' . preg_quote( $test ) . '(\W|$)/i', "\1" . $replace . "\2", $text );
-

我确定我只是想念它。

非常感谢任何帮助。谢谢

preg_replace(): Unknown modifier$test 包含 /.

时发生
preg_quote( $test );

应该是

preg_quote( $test, '/' );

/'/(^|\W)...(\W|$)/i' 表达式中使用的 PCRE 分隔符。

PHP PCRE 可以有任何定界符,所以你必须告诉 preg_quote() 使用哪个定界符。
http://php.net/manual/en/regexp.reference.delimiters.php