我有一系列不允许的字符:
$array = ('<php', '<?', '?>', '<h', '<b>');
我有一个字符串消息。 我如何检查,该字符串不包含数组中的任何单词?
基本上,我有一个ajax聊天,当我输入<b>hello</b>
时,它会使文本变粗,我不想在那里允许HTML,我不知道怎么做?
答案 0 :(得分:2)
您可以使用strip_tags
删除所有html标记,但是当您输出到html时,应始终使用htmlspecialchars()
以便使用>
,<
等任何特殊字符等等进行编码,这样它们就不会对生成的html产生任何影响。
顺便说一句,黑名单方法可能会失败,如果人们开始添加<script>
标签等等,该怎么办?虽然在你正在输出的媒体(html,db等)中正确编码时似乎没有必要,但你通常更擅长使用白名单方法。
答案 1 :(得分:0)
xml编码您在网页上显示的任何内容...
答案 2 :(得分:0)
你真的不应该把它们剥掉。如果您使用htmlspecialchars
,则可以将<
编码为<
,将>
编码为>
,以便html直接传递但不会被浏览器呈现。
作为补充:如果你使用jQuery,请记住.text(...)
将为你逃避这些事情。 .html(...)
不会。在安全地将html输出到浏览器时,请使用.text(...)
。
答案 3 :(得分:0)
要避免使用HTML标记,您可以使用
$value = htmlentities($value);
或
$value = htmlspecialchars($value);
你也可以使用这两个功能
$value = htmlspecialchars(htmlentities($value));