常用表:
其他的字符转义,请参考该博客:
iSO 8859-1 characters
htmlspecialchars_decode 和 html_entity_decode方法比较
$content = "<h1>你好啊</h1>大家好才是真的好啊 <!-- 注释 -->";
// htmlspecialchars_decode将实体转为html标签
$content = htmlspecialchars_decode($content);
$content = strip_tags($content,"<p><br><br ><br/><h1><h2><a><h3><h4><h5><h6><b><img><iframe>");
// html_entity_decode 将实体转为html标签,但是会将空格转为乱码,所以转的时候需要将空格符替换为一个字符[space_code]
$content = str_replace(" ","[space_code]",$content);
$content = html_entity_decode($content);
$content = str_replace("[space_code]","",$content);
如果有注释标签"<!-- 注释 -->",则上边的方法会将注释标签替换为十进制符,'$#60;',这样会在页面中输出HTML注释符号,所以,应该使用第二个方法进行转换。
结论:htmlentities 和 htmlspecialchars 的区别在于 htmlentities 会转化所有的 html character entity,而htmlspecialchars 只会转化手册上列出的几个 html character entity (也就是会影响 html 解析的那几个基本字符)。一般来说,使用 htmlspecialchars 转化掉基本字符就已经足够了,没有必要使用 htmlentities。实在要使用 htmlentities 时,要注意为第三个参数传递正确的编码。
相关文章:
PHP中htmlentities和 htmlspecialchars区别
关于html_entity_decode、空格 以及乱码
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。