preg_replace()未知修饰符(Wordpress词汇表插件)

时间:2011-02-06 00:22:29

标签: php wordpress wordpress-plugin preg-replace

我在Wordpress网站上安装了"Tooltip Glossary“插件,但是在输入了一些包含HTML标签的条目之后,它基本上停止了工作。我已经从所有违规的词汇表条目中剥离了标签,但现在我正在获取这些每页上的错误消息:

  

警告:preg_replace()[function.preg-replace]:/afs/ir.stanford.edu/group/hopes/cgi-bin/wordpress/wp-content/plugins/tooltipglossary/glossary中的未知修饰符'b'第90行的.php

     

警告:preg_replace()[function.preg-replace]:/afs/ir.stanford.edu/group/hopes/cgi-bin/wordpress/wp-content/plugins/tooltipglossary/glossary中的未知修饰符'b'第101行的.php

     

警告:preg_replace()[function.preg-replace]:/afs/ir.stanford.edu/group/hopes/cgi-bin/wordpress/wp-content/plugins/tooltipglossary/glossary中的未知修饰符'd'第90行的.php

     

警告:preg_replace()[function.preg-replace]:/afs/ir.stanford.edu/group/hopes/cgi-bin/wordpress/wp-content/plugins/tooltipglossary/glossary中的未知修饰符'd'第101行的.php

     

警告:preg_replace()[function.preg-replace]:/afs/ir.stanford.edu/group/hopes/cgi-bin/wordpress/wp-content/plugins/tooltipglossary/glossary中的未知修饰符'l'第90行的.php

     

警告:preg_replace()[function.preg-replace]:/afs/ir.stanford.edu/group/hopes/cgi-bin/wordpress/wp-content/plugins/tooltipglossary/glossary中的未知修饰符'l'第101行的.php

有人可以帮我弄清楚出了什么问题吗?我在这里上传了插件的php文件:http://www.box.net/shared/1nonkcm9yq

具体来说,第90行是

  

$ content_temp = preg_replace($ glossary_search,$ glossary_replace,$ content);

和第101行是

  

$ content_temp = preg_replace($ link_search,$ link_replace,$ content_temp);

非常感谢!

1 个答案:

答案 0 :(得分:2)

你的标题中有正斜杠。它打破了正则表达式,因为/也是外部分隔符。

你需要添加preg_quote(),其中构建了$ glossary_search(第83行):

$glossary_title = $glossary_item->post_title;
$glossary_title = preg_quote($glossary_title, "/");
$glossary_search = '/\b'.$glossary_title.'s*?\b(?=([^"]*"[^"]*")*[^"]*$)/i';

还有第94行:

$link_search = '/<a'.$timestamp.'>('.preg_quote($glossary_item->post_title, "/").'[A-Za-z]*?)<\/a'.$timestamp.'>/i';