这段时间一直在研究关于PHP过滤HTML标签的问题,也写过两三篇此类的博文。今天再来一篇,PHP过滤HTML标签的几种方法。
strip_tags()函数过滤
关于PHP中strip_tags()前几天写了一篇文章,做了个详细的介绍,大家可以参考下面的两篇文章
PHP利用正规表达式过滤HTML标签
代码$str=preg_replace("/\s+/", " ", $str); //过滤多余回车
$str=preg_replace("/
$str=preg_replace("//si","",$str); //注释
$str=preg_replace("//si","",$str); //过滤DOCTYPE
$str=preg_replace("//si","",$str); //过滤html标签
$str=preg_replace("//si","",$str); //过滤head标签
$str=preg_replace("//si","",$str); //过滤meta标签
$str=preg_replace("//si","",$str); //过滤body标签
$str=preg_replace("//si","",$str); //过滤link标签
$str=preg_replace("//si","",$str); //过滤form标签
$str=preg_replace("/cookie/si","COOKIE",$str); //过滤COOKIE标签
$str=preg_replace("/(.*?)/si","",$str); //过滤applet标签
$str=preg_replace("//si","",$str); //过滤applet标签
$str=preg_replace("/(.*?)/si","",$str); //过滤style标签
$str=preg_replace("//si","",$str); //过滤style标签
$str=preg_replace("/(.*?)/si","",$str); //过滤title标签
$str=preg_replace("//si","",$str); //过滤title标签
$str=preg_replace("/(.*?)/si","",$str); //过滤object标签
$str=preg_replace("//si","",$str); //过滤object标签
$str=preg_replace("/(.*?)/si","",$str); //过滤noframes标签
$str=preg_replace("//si","",$str); //过滤noframes标签
$str=preg_replace("/(.*?)/si","",$str); //过滤frame标签
$str=preg_replace("//si","",$str); //过滤frame标签
$str=preg_replace("/(.*?)/si","",$str); //过滤script标签
$str=preg_replace("//si","",$str); //过滤script标签
$str=preg_replace("/javascript/si","Javascript",$str); //过滤script标签
$str=preg_replace("/vbscript/si","Vbscript",$str); //过滤script标签
$str=preg_replace("/on([a-z]+)\s*=/si","On\\1=",$str); //过滤script标签
$str=preg_replace("//si","&#",$str); //过滤script标签,如javAsCript:alert()
注意:在php中使用正规表达式的方式来过滤HTML标签,效率要比使用strip_tags()函数快一些,但过滤的程度会更彻底一些。