检查邮件是否包含错误字符?

时间:2013-06-18 14:49:42

标签: php

我有一系列不允许的字符:

$array = ('<php', '<?', '?>', '<h', '<b>');

我有一个字符串消息。 我如何检查,该字符串不包含数组中的任何单词?

基本上,我有一个ajax聊天,当我输入<b>hello</b>时,它会使文本变粗,我不想在那里允许HTML,我不知道怎么做?

4 个答案:

答案 0 :(得分:2)

您可以使用strip_tags删除所有html标记,但是当您输出到html时,应始终使用htmlspecialchars()以便使用><等任何特殊字符等等进行编码,这样它们就不会对生成的html产生任何影响。

顺便说一句,黑名单方法可能会失败,如果人们开始添加<script>标签等等,该怎么办?虽然在你正在输出的媒体(html,db等)中正确编码时似乎没有必要,但你通常更擅长使用白名单方法。

答案 1 :(得分:0)

xml编码您在网页上显示的任何内容...

答案 2 :(得分:0)

你真的不应该把它们剥掉。如果您使用htmlspecialchars,则可以将<编码为&lt;,将>编码为&gt;,以便html直接传递但不会被浏览器呈现。

作为补充:如果你使用jQuery,请记住.text(...)将为你逃避这些事情。 .html(...)不会。在安全地将html输出到浏览器时,请使用.text(...)

答案 3 :(得分:0)

要避免使用HTML标记,您可以使用

$value = htmlentities($value); 

$value = htmlspecialchars($value);

你也可以使用这两个功能

$value = htmlspecialchars(htmlentities($value));