我在我的小型 CMS 中使用 CKEDITOR。
当我使用本地链接功能时,它工作正常。但是我一上网,并试图建立一个链接 mysql_real_escape_string(); 搞砸了,我得到如下链接:
<a href=\"\\\" target=\"\\"_blank\\"\">Se beautyPopup på gitHub</a>
我该如何解决?
我在我的小型 CMS 中使用 CKEDITOR。
当我使用本地链接功能时,它工作正常。但是我一上网,并试图建立一个链接 mysql_real_escape_string(); 搞砸了,我得到如下链接:
<a href=\"\\\" target=\"\\"_blank\\"\">Se beautyPopup på gitHub</a>
我该如何解决?
您看到的问题是因为您正在使用mysql_real_escape_string
转义 HTML 输出。那不是它的用途。这是为了逃避进入数据库的数据。
您正在寻找的是:htmlspecialchars()
. 也不要忘记传递编码。这方面的一个例子是:
echo htmlspecialchars($yourString, ENT_QUOTES, 'UTF-8');
另请注意,如果您正在编写新代码,mysql_*
无论如何都不鼓励您在 PHP 中使用旧 API,因为它已被弃用。
更新
根据您的评论,我看到您正在尝试保留一些标签,同时禁止其他标签。在这种情况下,我只能建议您查看HTML Purifier。