这段时间一直在研究关于php过滤html标签的问题,也写过两三篇此类的博文。今天再来一篇,php过滤html标签的几种方法。
strip_tags()函数过滤
关于php中strip_tags()前几天写了一篇文章,做了个详细的介绍,大家可以参考下面的两篇文章
php利用正规表达式过滤html标签
代码
$str=preg_replace("/s /", " ", $str); //过滤多余回车 $str=preg_replace("/<[ ] /si","<",$str); //过滤<__("<"号后面带空格) $str=preg_replace("//si","",$str); //注释 $str=preg_replace("/<(!.*?)>/si","",$str); //过滤doctype $str=preg_replace("/<(/?html.*?)>/si","",$str); //过滤html标签 $str=preg_replace("/<(/?head.*?)>/si","",$str); //过滤head标签 $str=preg_replace("/<(/?meta.*?)>/si","",$str); //过滤meta标签 $str=preg_replace("/<(/?body.*?)>/si","",$str); //过滤body标签 $str=preg_replace("/<(/?link.*?)>/si","",$str); //过滤link标签 $str=preg_replace("/<(/?form.*?)>/si","",$str); //过滤form标签 $str=preg_replace("/cookie/si","cookie",$str); //过滤cookie标签 $str=preg_replace("/<(applet.*?)>(.*?)<(/applet.*?)>/si","",$str); //过滤applet标签 $str=preg_replace("/<(/?applet.*?)>/si","",$str); //过滤applet标签 $str=preg_replace("/<(style.*?)>(.*?)<(/style.*?)>/si","",$str); //过滤style标签 $str=preg_replace("/<(/?style.*?)>/si","",$str); //过滤style标签 $str=preg_replace("/<(title.*?)>(.*?)<(/title.*?)>/si","",$str); //过滤title标签 $str=preg_replace("/<(/?title.*?)>/si","",$str); //过滤title标签 $str=preg_replace("/<(object.*?)>(.*?)<(/object.*?)>/si","",$str); //过滤object标签 $str=preg_replace("/<(/?objec.*?)>/si","",$str); //过滤object标签 $str=preg_replace("/<(noframes.*?)>(.*?)<(/noframes.*?)>/si","",$str); //过滤noframes标签 $str=preg_replace("/<(/?noframes.*?)>/si","",$str); //过滤noframes标签 $str=preg_replace("/<(i?frame.*?)>(.*?)<(/i?frame.*?)>/si","",$str); //过滤frame标签 $str=preg_replace("/<(/?i?frame.*?)>/si","",$str); //过滤frame标签 $str=preg_replace("/<(script.*?)>(.*?)<(/script.*?)>/si","",$str); //过滤script标签 $str=preg_replace("/<(/?script.*?)>/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()函数快一些,但过滤的程度会更彻底一些。