PHP实现过滤各种HTML标签
网络编程 2021-07-05 09:09www.168986.cn编程入门
在做项目的过程中,我们经常需要用到过滤一些html标签来实现提高数据的安全性,其实就是删除那些对应用程序有潜在危害的数据。它用于去除标签以及删除或编码不需要的字符。
分享一些比较常见的
$str=preg_replace("/<simgs+[^>]?srcs=s('|")(.?)\1[^>]?/?s>/i","", $str); //过滤img标签 $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标签
更简单些的写法
function delhtml($str){ //清除html标签 $st=-1; //开始 $et=-1; //结束 $stmp=array(); $stmp[]=" "; $len=strlen($str); for($i=0;$i<$len;$i++){ $ss=substr($str,$i,1); if(ord($ss)==60){ //ord("<")==60 $st=$i; } if(ord($ss)==62){ //ord(">")==62 $et=$i; if($st!=-1){ $stmp[]=substr($str,$st,$et-$st+1); } } } $str=str_replace($stmp,"",$str); return $str; }
再来一个
function clear_html_label($html) { $search = array ("'<script[^>]?>.?</script>'si", "'<[/!]?[^<>]?>'si", "'([rn])[s]+'", "'&(quot|#34);'i", "'&(amp|#38);'i", "'&(lt|#60);'i", "'&(gt|#62);'i", "'&(nbsp|#160);'i", "'&(iexcl|#161);'i", "'&(cent|#162);'i", "'&(pound|#163);'i", "'&(copy|#169);'i", "'&#(d+);'e"); $replace = array ("", "", "1", """, "&", "<", ">", " ", chr(161), chr(162), chr(163), chr(169), "chr(1)"); return preg_replace($search, $replace, $html); }
以上三种方法均可以实现,不过各有优劣,小伙伴们根据自己的项目需求来选择吧。
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程