我正在运行一个 MySql 和 PHP 驱动的博客/评论风格的网站,并希望让用户可以在他们的帖子中添加格式标签,例如 <bold>
, <italics>
等标签,但是,在运行类似 htmlentities 的内容时,用户无法发布类似 <a>
的内容或 <div id="footer">
并破坏网站。
所以问题是我该如何解决这个问题?我是否让它 htmlentities 或类似的功能有一个允许标签的白名单?我无法找到有关此问题的任何结果或帮助。目前,我为数据库实体准备的分层顺序是:
$content = nl2br ($_POST["content"]);
$content = mysql_real_escape_string($content);
$content = trim($content);
$content = htmlentities($content);
感谢您的帮助。再一次,我想知道 htmlentities 是否是我想要用来完成此操作的功能,所以任何建议或寻找的地方都将不胜感激!
最佳答案
白名单是必须的...使用strip_tags()函数,带有第二个参数。
// Allow <p> and <a>
echo strip_tags($text, '<p><a>');
不要将编码后的 html 保存在数据库中。
关于php - 如何为 htmlentities 设置标签异常(exception)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14009633/