我在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);
非常感谢!
答案 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';