1.strip_tags:过滤html标签比如<a> <html> <script>
如:
$str = '文字内容'; echo strip_tags($str); 输出结果: 文字内容alert(213)
去掉了 标签 应用场景:去掉表单提交内容的html标签 2.htmlentities,htmlspecialchars 过滤字段的各种特殊符号 区别一:
htmlentities对欧元符号'€'转义,美元符号'$' 不转义
htmlspecialchars对欧元符号'€'不转义,美元符号'$' 不转义 区别二:
$str = '测试页面';echo 'htmlentities指定GB2312编码:'.htmlentities($str,ENT_COMPAT,"GB2312").'';echo 'htmlentities未指定编码:'.htmlentities($str).'';$str = '测试页面';echo htmlspecialchars($str).'';
输出:
测试
$str='测试'; $transstr = htmlspecialchars($str) ; echo $transstr . ""; echo htmlspecialchars_decode($transstr);
总结:htmlentities会转化所有的html代码,连同里面的它无法识别的中文字符也给转化了(当有中文的时候会变成乱码)。htmlspecialchars 只会转化部分代码(如:& ' " < 和 > )
结论:有中文的时候用htmlspecialchars,使用htmlentities 必须要 htmlentities($str, ENT_COMPAT, 'gb2312'); strip_tags防止<a href> <script>alert(1)</script> html标签提交