PHP实现过滤各种HTML标签


Posted in PHP onMay 17, 2015

首先分享一些比较常见的

$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","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); 
}

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

PHP 相关文章推荐
用PHP ob_start()控制浏览器cache、生成html实现代码
Feb 16 PHP
解析PayPal支付接口的PHP开发方式
Nov 28 PHP
在windows服务器开启php的gd库phpinfo中未发现
Jan 13 PHP
使用PHP备份MySQL和网站发送到邮箱实例代码
Nov 28 PHP
PHP的拦截器实例分析
Nov 03 PHP
PHP下的浮点运算不准的解决方法
Oct 27 PHP
php对xml文件的增删改查操作实现方法分析
May 19 PHP
完美的php分页类
Oct 24 PHP
PHP设计模式之适配器模式原理与用法分析
Apr 25 PHP
详解php中curl返回false的解决办法
Mar 18 PHP
YII2框架中添加自定义模块的方法实例分析
Mar 18 PHP
PHP基于array_unique实现二维数组去重
Jul 14 PHP
支持中文的PHP按字符串长度分割成数组代码
May 17 #PHP
php 批量查询搜狗sogou代码分享
May 17 #PHP
PHP解密Unicode及Escape加密字符串
May 17 #PHP
PHP实现远程下载文件到本地
May 17 #PHP
PHP生成json和xml类型接口数据格式
May 17 #PHP
php实现文本数据导入SQL SERVER
May 17 #PHP
php中PDO方式实现数据库的增删改查
May 17 #PHP
You might like
PHP strip_tags()去除HTML、XML以及PHP的标签介绍
2014/02/18 PHP
JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结
2010/04/13 Javascript
基于jquery的jqDnR拖拽溢出的修改
2011/02/12 Javascript
jQuery 源码分析笔记(6) jQuery.data
2011/06/08 Javascript
javascript中不等于的代码是什么怎么写
2013/12/29 Javascript
jQuery 文本框得失焦点的简单实例
2014/02/19 Javascript
JavaScript通过元素的ID和name设置样式
2014/07/08 Javascript
javascript实现分栏显示小技巧附图
2014/10/13 Javascript
JS实现的Select三级下拉菜单代码
2015/08/20 Javascript
jQuery Easyui使用(一)之可折叠面板的布局手风琴菜单
2016/08/17 Javascript
关于两个jQuery(js)特效冲突的bug的解决办法
2016/09/04 Javascript
JavaScript 是什么意思
2016/09/22 Javascript
JavaScript中匿名函数的递归调用
2017/01/22 Javascript
JS中使用正则表达式g模式和非g模式的区别
2017/04/01 Javascript
Ionic3 UI组件之Gallery Modal详解
2017/06/07 Javascript
JavaScript引用类型Date常见用法实例分析
2018/08/08 Javascript
vue中多个倒计时实现代码实例
2019/03/27 Javascript
[06:04]DOTA2国际邀请赛纪录片:Just For LGD
2013/08/11 DOTA
[06:50]DSPL次级职业联赛十强晋级之路
2014/11/18 DOTA
[01:13:01]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第三场
2018/04/05 DOTA
基于python yield机制的异步操作同步化编程模型
2016/03/18 Python
pandas中的DataFrame按指定顺序输出所有列的方法
2018/04/10 Python
python批量复制图片到另一个文件夹
2018/09/17 Python
Django框架设置cookies与获取cookies操作详解
2019/05/27 Python
Pandas之ReIndex重新索引的实现
2019/06/25 Python
python实现图片九宫格分割
2021/03/07 Python
解决Jupyter notebook中.py与.ipynb文件的import问题
2020/04/21 Python
使用OpenCV获取图像某点的颜色值,并设置某点的颜色
2020/06/02 Python
Python confluent kafka客户端配置kerberos认证流程详解
2020/10/12 Python
css3中transition属性详解
2014/09/02 HTML / CSS
IE支持HTML5的解决方法
2009/10/20 HTML / CSS
美国床垫连锁店:Mattress Firm
2021/02/13 全球购物
十月份红领巾广播稿
2014/01/22 职场文书
医院办公室主任岗位职责
2015/04/01 职场文书
药房管理制度范本
2015/08/06 职场文书
教师正风肃纪心得体会
2016/01/15 职场文书