zoukankan      html  css  js  c++  java
  • PHP实现过滤各种HTML标签

    首先分享一些比较常见的

    $str=preg_replace("/<s*imgs+[^>]*?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","On1=",$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); 
    }

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

  • 相关阅读:
    ASP.NET 2.0 中改进的缓存功能
    Python 一门神奇的语言
    showModalDialog()、showModelessDialog()方法使用详解
    在VS2005中 GridView导入Excel的两点小技巧附源码
    DVB码流中业务信息与电子节目指南
    js 日历控件
    js收藏
    什么是ECM,EMM,AU,EMU?
    精解PSISI(一)
    Oracle第四课(学习笔记)
  • 原文地址:https://www.cnblogs.com/aspnetjia/p/5165818.html
Copyright © 2011-2022 走看看