Php 转义除<;br>;
我试图在页面上显示评论,但遇到了一些问题 我试图处理两种不同类型的评论: (1) XSS类型。。e、 g.Php 转义除<;br>;,php,html,xss,html-entities,Php,Html,Xss,Html Entities,我试图在页面上显示评论,但遇到了一些问题 我试图处理两种不同类型的评论: (1) XSS类型。。e、 g.警报('hi')。通过在它进入数据库之前对其进行转义,然后在其上运行stripslashes和htmlentities,可以相当容易地处理这个问题 (2) 带有的注释在其中中断。当数据存储到数据库中时,我正在数据库上运行nl2br,因此数据看起来像hihelloetc。但是,当我显示此注释时,不会像我希望的那样变成分页符 知道怎么办吗?我应该注意,关闭htmlentities会修复第二种类型
警报('hi')
。通过在它进入数据库之前对其进行转义,然后在其上运行stripslashes和htmlentities,可以相当容易地处理这个问题
(2) 带有
的注释在其中中断。当数据存储到数据库中时,我正在数据库上运行nl2br,因此数据看起来像hi
hello
etc
。但是,当我显示此注释时,
不会像我希望的那样变成分页符
知道怎么办吗?我应该注意,关闭htmlentities会修复第二种类型,但第一种类型会作为纯html执行,并显示一个警报对话框
谢谢,
Phil一种方法:用占位符替换
,如\n
。然后执行htmlentities来清理html代码。最后,将\n
替换回
以恢复换行符。如果要删除不需要的标记,可以尝试去除标记。它支持允许的\u标记
,因此您可以指定不希望剥离的任何标记。样本来自:
//允许和
//如果不希望剥离,可以添加
回音条标签($text,);
因此,在您将所有\n
转换为换行符后,您不必担心它被剥离。可能不是你想要的,但希望它能给你一个想法。你试过脱衣舞标签吗?虽然这不是最干净的解决方案,但效果很好——谢谢。哇,我没意识到这是存在的。谢谢你!是的,但它实际上撕开了标签,例如,也许你只是想被转义,而不是删除…脚本和其余的正常
// Allow <p> and <a>
// you can add <br> if you want it not stripped
echo strip_tags($text, '<p><a>');