php - 如何为 htmlentities 设置标签异常(exception)?

标签 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 是否是我想要用来完成此操作的功能,所以任何建议或寻找的地方都将不胜感激!

最佳答案

白名单是必须的.​​..使用strip_tags()函数,带有第二个参数。

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

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

关于php - 如何为 htmlentities 设置标签异常(exception)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14009633/

相关文章:

javascript - 服务器端 Google Analytics 实验

javascript - 匹配 JavaScript 数组中的值

mysql - 哪个 mysql utf8 排序规则用于来自 latin1 的数据

mysql - 如何使用注册表单解决空指针异常错误

mysql - 在 JPA 查询中转义冒号字符 ':'

php - 是否可能有 1 个查询语句

php - 如何存储在客户端机器上并重复使用 php/mysql 查询?

PHP cookie 有一次刷新延迟

php - 新用户注册和收到激活邮件之间有 4 分钟的延迟

Mysql存储HTML代码