【发布时间】:2012-05-07 07:25:24
【问题描述】:
我有一个 PHP 论坛应用程序 (PHPBB),它在网站前端显示论坛标题。生成这个标题的代码是stripBBCode($row1["topic_title"])
每个论坛标题实际上是一个引用,如下所示:
心中充满激情,没有什么是你做不到的。 “现在 什么?”斯瓦米·西瓦南达
PHP 在标题中的单引号和双引号存在问题,因此当它遇到这些引号之一时,它实际上会停止解析 PHP。我理解 PHP 这样做的原因,但我没有一个可行的解决方案来允许 PHP 解析带有引号和撇号的文本字符串。
我可以对stripBBCode($row1["topic_title"]) 做什么以允许使用这个标点符号?
提前致谢。
【问题讨论】:
-
不确定 htmlspecialchars() 是否是解决方案?
-
是的,这应该可以解决问题:)
-
似乎不起作用:htmlspecialchars(stripBBCode($row1["topic_title"]), ENT_QUOTES)
-
htmlspecialchars() 会将特殊字符切换为 html 字符代码...您需要对传递给 stripBBCode 函数的参数执行此操作,而不是函数的结果。在 PHP 中解析字符串以进行进一步处理时,addslashes() 应该可以工作。
-
addslashes 不起作用....stripBBCode 函数如下,我如何在此处添加 htmlspecialchars: function stripBBCode($text_to_search) { $pattern = '|[[\/\!] *?[^[]]*?]|si'; $替换='';返回 preg_replace($pattern, $replace, $text_to_search); }