登录  /  注册

PHP实现过滤各种HTML标签_PHP

php中文网
发布: 2016-05-29 11:52:23
原创
708人浏览过

首先分享一些比较常见的

$str=preg_replace("/<s*imgs+[^>]*&#63;srcs*=s*('|")(.*&#63;)\1[^>]*&#63;/&#63;s*>/i","", $str); //过滤img标签

$str=preg_replace("/s+/","", $str); //过滤多余回车

$str=preg_replace("/<[ ]+/si","<",$str); //过滤<__("<"号后面带空格)

$str=preg_replace("/<!--.*&#63;-->/si","",$str); //注释

$str=preg_replace("/<(!.*&#63;)>/si","",$str); //过滤DOCTYPE

$str=preg_replace("/<(/&#63;html.*&#63;)>/si","",$str); //过滤html标签

$str=preg_replace("/<(/&#63;head.*&#63;)>/si","",$str); //过滤head标签

$str=preg_replace("/<(/&#63;meta.*&#63;)>/si","",$str); //过滤meta标签

$str=preg_replace("/<(/&#63;body.*&#63;)>/si","",$str); //过滤body标签

$str=preg_replace("/<(/&#63;link.*&#63;)>/si","",$str); //过滤link标签

$str=preg_replace("/<(/&#63;form.*&#63;)>/si","",$str); //过滤form标签

$str=preg_replace("/cookie/si","COOKIE",$str); //过滤COOKIE标签

$str=preg_replace("/<(applet.*&#63;)>(.*&#63;)<(/applet.*&#63;)>/si","",$str); //过滤applet标签

$str=preg_replace("/<(/&#63;applet.*&#63;)>/si","",$str); //过滤applet标签

$str=preg_replace("/<(style.*&#63;)>(.*&#63;)<(/style.*&#63;)>/si","",$str); //过滤style标签

$str=preg_replace("/<(/&#63;style.*&#63;)>/si","",$str); //过滤style标签

$str=preg_replace("/<(title.*&#63;)>(.*&#63;)<(/title.*&#63;)>/si","",$str); //过滤title标签

$str=preg_replace("/<(/&#63;title.*&#63;)>/si","",$str); //过滤title标签

$str=preg_replace("/<(object.*&#63;)>(.*&#63;)<(/object.*&#63;)>/si","",$str); //过滤object标签

$str=preg_replace("/<(/&#63;objec.*&#63;)>/si","",$str); //过滤object标签

$str=preg_replace("/<(noframes.*&#63;)>(.*&#63;)<(/noframes.*&#63;)>/si","",$str); //过滤noframes标签

$str=preg_replace("/<(/&#63;noframes.*&#63;)>/si","",$str); //过滤noframes标签

$str=preg_replace("/<(i&#63;frame.*&#63;)>(.*&#63;)<(/i&#63;frame.*&#63;)>/si","",$str); //过滤frame标签

$str=preg_replace("/<(/&#63;i&#63;frame.*&#63;)>/si","",$str); //过滤frame标签

$str=preg_replace("/<(script.*&#63;)>(.*&#63;)<(/script.*&#63;)>/si","",$str); //过滤script标签

$str=preg_replace("/<(/&#63;script.*&#63;)>/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[^>]*&#63;>.*&#63;</script>'si", "'<[/!]*&#63;[^<>]*&#63;>'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); 
}
登录后复制

以上三种方法均可以实现,不过各有优劣,小伙伴们根据自己的项目需求来选择吧。

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号