我试图在页面上显示评论,但遇到了一些问题。
我试图处理两种不同类型的评论:
(1) XSS 类型.. 例如<script type="text/javascript">alert('hi')</script>
.在它进入数据库之前将其转义,然后在其上运行 stripslashes 和 htmlentities,这可以很容易地处理。
(2) <br>
的评论打破它。当数据存储到数据库中时,我在其上运行 nl2br 所以数据看起来像 hi<br>hello<br><br>etc
.但是,当我显示此评论时,<br>
不要像我希望的那样变成分页符。
知道要做什么吗?我应该注意到,关闭 htmlentities 会修复第二种类型,但第一种类型会作为纯 html 执行并显示一个警告对话框。
谢谢, 菲尔
最佳答案
如果你想删除不需要的标签,你可以试试 strip_tags
。它支持 allowable_tags
因此您可以指定任何您不想被剥离的标签。来自 manual 的示例:
// Allow <p> and <a>
// you can add <br> if you want it not stripped
echo strip_tags($text, '<p><a>');
因此,在将所有 \n
转换为换行符后,您不必担心它会被删除。可能不是您想要的,但希望它能提供一个想法。
关于php - 转义除 <br> 之外的所有 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5986837/