首先分享一些比较常见的

  1. $str=preg_replace("/<s*imgs+[^>]*?srcs*=s*(''|")(.*?)\1[^>]*?/?s*>/i","", $str); //过滤img标签
  2.  
  3. $str=preg_replace("/s+/","", $str); //过滤多余回车
  4.  
  5. $str=preg_replace("/<[ ]+/si","<",$str); //过滤<__("<"号后面带空格)
  6.  
  7. $str=preg_replace("/<!--.*?-->/si","",$str); //注释
  8.  
  9. $str=preg_replace("/<(!.*?)>/si","",$str); //过滤DOCTYPE
  10.  
  11. $str=preg_replace("/<(/?html.*?)>/si","",$str); //过滤html标签
  12.  
  13. $str=preg_replace("/<(/?head.*?)>/si","",$str); //过滤head标签
  14.  
  15. $str=preg_replace("/<(/?meta.*?)>/si","",$str); //过滤meta标签
  16.  
  17. $str=preg_replace("/<(/?body.*?)>/si","",$str); //过滤body标签
  18.  
  19. $str=preg_replace("/<(/?link.*?)>/si","",$str); //过滤link标签
  20.  
  21. $str=preg_replace("/<(/?form.*?)>/si","",$str); //过滤form标签
  22.  
  23. $str=preg_replace("/cookie/si","COOKIE",$str); //过滤COOKIE标签
  24.  
  25. $str=preg_replace("/<(applet.*?)>(.*?)<(/applet.*?)>/si","",$str); //过滤applet标签
  26.  
  27. $str=preg_replace("/<(/?applet.*?)>/si","",$str); //过滤applet标签
  28.  
  29. $str=preg_replace("/<(style.*?)>(.*?)<(/style.*?)>/si","",$str); //过滤style标签
  30.  
  31. $str=preg_replace("/<(/?style.*?)>/si","",$str); //过滤style标签
  32.  
  33. $str=preg_replace("/<(title.*?)>(.*?)<(/title.*?)>/si","",$str); //过滤title标签
  34.  
  35. $str=preg_replace("/<(/?title.*?)>/si","",$str); //过滤title标签
  36.  
  37. $str=preg_replace("/<(object.*?)>(.*?)<(/object.*?)>/si","",$str); //过滤object标签
  38.  
  39. $str=preg_replace("/<(/?objec.*?)>/si","",$str); //过滤object标签
  40.  
  41. $str=preg_replace("/<(noframes.*?)>(.*?)<(/noframes.*?)>/si","",$str); //过滤noframes标签
  42.  
  43. $str=preg_replace("/<(/?noframes.*?)>/si","",$str); //过滤noframes标签
  44.  
  45. $str=preg_replace("/<(i?frame.*?)>(.*?)<(/i?frame.*?)>/si","",$str); //过滤frame标签
  46.  
  47. $str=preg_replace("/<(/?i?frame.*?)>/si","",$str); //过滤frame标签
  48.  
  49. $str=preg_replace("/<(script.*?)>(.*?)<(/script.*?)>/si","",$str); //过滤script标签
  50.  
  51. $str=preg_replace("/<(/?script.*?)>/si","",$str); //过滤script标签
  52.  
  53. $str=preg_replace("/javascript/si","Javascript",$str); //过滤script标签
  54.  
  55. $str=preg_replace("/vbscript/si","Vbscript",$str); //过滤script标签
  56.  
  57. $str=preg_replace("/on([a-z]+)s*=/si","On\1=",$str); //过滤script标签
  58.  
  59. $str=preg_replace("/&#/si","&#",$str); //过滤script标签

更简单些的写法:

  1. function delhtml($str){ //清除html标签
  2. $st=-1; //开始
  3. $et=-1; //结束
  4. $stmp=array();
  5. $stmp[]=" ";
  6. $len=strlen($str);
  7. for($i=0;$i<$len;$i++){
  8. $ss=substr($str,$i,1);
  9. if(ord($ss)==60){ //ord("<")==60
  10. $st=$i;
  11. }
  12. if(ord($ss)==62){ //ord(">")==62
  13. $et=$i;
  14. if($st!=-1){
  15. $stmp[]=substr($str,$st,$et-$st+1);
  16. }
  17. }
  18. }
  19. $str=str_replace($stmp,"",$str);
  20. return $str;
  21. }

再来一个:

  1. function clear_html_label($html)
  2. {
  3. $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");
  4. $replace = array ("", "", "1", """, "&", "<", ">", " ", chr(161), chr(162), chr(163), chr(169), "chr(1)");
  5. return preg_replace($search, $replace, $html);
  6. }

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

PHP实现过滤各种HTML标签的更多相关文章

  1. PHP通用的XSS攻击过滤函数,Discuz系统中 防止XSS漏洞攻击,过滤HTML危险标签属性的PHP函数

    XSS攻击在最近很是流行,往往在某段代码里一不小心就会被人放上XSS攻击的代码,看到国外有人写上了函数,咱也偷偷懒,悄悄的贴上来... 原文如下: The goal of this function ...

  2. 过滤字符串html标签方法

    过滤字符串html标签方法,如果输入的过滤标签为“*”,那么给字符串加上p标签 public static string noTagHtml(string str, string tagname) { ...

  3. 正则过滤html的标签

    $('#Text').find('br').remove();//移除br标签 let content = $('#smsText').html().replace(/ /g, ' ').replac ...

  4. java 使用正则表达式过滤HTML中标签

    /** * 去掉文本中的html标签 * * @param inputString * @return */ public static String html2Text(String inputSt ...

  5. PHP过滤各种HTML标签

    $str=preg_replace("/<\s*img\s+[^>]*?src\s*=\s*(\'|\")(.*?)\\1[^>]*?\/?\s*>/i&q ...

  6. PHP过滤各种HTML标签的表达式,值得收藏

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...

  7. 百度UEditor富文本编辑器去除过滤div等标签

    将设计排版好的页面html代码上传到数据库,再读取出来的时候发现所有的div都被替换成了p标签. 解决方法: 首先在ueditor.all.js文件内搜索allowDivTransToP,找到如下的代 ...

  8. asp.net正则表达式提取网页网址、标题、图片实例以及过滤所有HTML标签实例

    无论你用什么语言,正则表达式的处理方法都是非常灵活.高效的,尤其是对某些字符串的抓取.过滤方面,更显其优势. 正则表达式的写法通常比较简单,几行短代码便能轻松完成看似很复杂的事情,更值得称赞的是,它的 ...

  9. php特殊字符过滤,html标签处理

    1,magic_quotes_gpc  默认情况下,PHP 指令 magic_quotes_gpc 为 on,对所有的 GET.POST 和 COOKIE 数据自动运行 addslashes().不要 ...

随机推荐

  1. CoreImage 处理图片

    1.CoreImage 滤镜的使用(马赛克模糊) CoreImage是苹果公司为了简化图片处理的难度而开发出来的类库. 随着iOS版本号升级以及硬件性能的不断提升,CoreImage将支持越来越多的滤 ...

  2. WPF操作ini 文件的读写示例

    /// <summary> /// IniFiles 的摘要说明. /// 示例文件路径:C:\file.ini /// [Server] //[*] 表示缓存区 /// name=loc ...

  3. Asp.net Core WebApi 返回JSON自动驼峰格式化问题

    从今天开始,正式进入Asp.net Core的开发,估计最近一段时间会经常写博客了,记录学些Asp.net Core中遇到的各种坑. 第一个问题:通过core编写的webapi,默认返回的json会自 ...

  4. Mac OSX系统下SVN客户端SCPlugin问题

    装上SCPlugin后,Checkout老是出现这种错误: Server certificate verification failed: certificate issued for a diffe ...

  5. HBase - Phoenix剖析

    1.概述 在<Hadoop-Drill深度剖析>一文当中,给大家介绍了Drill的相关内容,就实时查询来说,Drill基本能够满足要求,同时还可以做一个简单业务上的聚合,如果在使用Hive ...

  6. Hibernate缓存原理与策略 Hibernate缓存原理:

    Hibernate缓存原理: 对于Hibernate这类ORM而言,缓存显的尤为重要,它是持久层性能提升的关键.简单来讲Hibernate就是对JDBC进行封装,以实现内部状态的管理,OR关系的映射等 ...

  7. LoadRunner 12 发布,主推云

    LoadRunner 12 发布,主推云 http://blog.csdn.net/testing_is_believing/article/details/22572341

  8. iOS开发备忘录:自定义UINavigationBar背景图片和Back按钮

    iOS项目,根据设计图,有时需要自定义UIView的UINavigationBar的背景.可以切出来一张1像素左右的背景图片,来充当UINavigationBar的背景. 可以利用Navigation ...

  9. window 内核详尽分析

    http://bbs.pediy.com/showthread.php?t=185055

  10. 图文详解远程部署ASP.NET MVC 5项目

    话外篇: 由于感觉自己的机器比较慢,配置不好,所以最近想把之前的项目部署到实验室的服务器上,但是由于常不在实验室,所以在想能不能远程部署.因此今天专门研究了一下具体的过程,下面和大家分享一下.本人新手 ...