如何为htmlentities设置标签例外?

时间:2012-12-23 08:25:16

标签: php mysql

我正在运行一个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是否是我想用来实现这个功能,所以任何建议或地方都会非常感激!

1 个答案:

答案 0 :(得分:2)

白名单必须......使用strip_tags()函数,第二个参数。

// Allow <p> and <a>
echo strip_tags($text, '<p><a>');

不要将编码的html保存在数据库中。