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 相关文章推荐
教你IIS6的PHP最佳配置方法
Sep 05 PHP
其他功能
Oct 09 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
Jun 26 PHP
php的curl封装类用法实例
Nov 07 PHP
php+xml编程之SimpleXML的应用实例
Jan 24 PHP
php类常量用法实例分析
Jul 09 PHP
两种php给图片加水印的实现代码
Apr 18 PHP
Linux平台PHP5.4设置FPM线程数量的方法
Nov 09 PHP
CakePHP框架Session设置方法分析
Feb 23 PHP
ThinkPHP5框架缓存查询操作分析
May 30 PHP
php微信开发之关键词回复功能
Jun 13 PHP
TP框架实现上传一张图片和批量上传图片的方法分析
Apr 23 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
地球防卫队:陪着奥特曼打小怪兽的人类力量 那些经典队服
2020/03/08 日漫
PHP 防注入函数(格式化数据)
2011/08/08 PHP
js异或加解密效果代码
2008/06/25 Javascript
prototype Element学习笔记(篇一)
2008/10/26 Javascript
编写可维护面向对象的JavaScript代码[翻译]
2011/02/12 Javascript
jquery自定义滚动条插件示例分享
2014/02/21 Javascript
jquery队列queue与原生模仿其实现方法分享
2014/03/25 Javascript
jQuery中get()方法用法实例
2014/12/27 Javascript
js实现进度条的方法
2015/02/13 Javascript
jQuery插件slicebox实现3D动画图片轮播切换特效
2015/04/12 Javascript
jQuery实现自动调整字体大小的方法
2015/06/15 Javascript
总结Javascript中的隐式类型转换
2016/08/24 Javascript
微信小程序 UI布局常用技巧整理总结
2016/12/05 Javascript
详解angularJs指令的3种绑定策略
2017/04/13 Javascript
jQuery Validate 无法验证 chosen-select元素的解决方法
2017/05/17 jQuery
jQuery获取随机颜色的实例代码
2018/05/21 jQuery
layui默认选中table的CheckBox复选框方法
2019/09/19 Javascript
[01:43]深扒TI7聊天轮盘语音出处4
2017/05/11 DOTA
Python 模拟登陆的两种实现方法
2017/08/10 Python
在Python的一段程序中如何使用多次事件循环详解
2017/09/07 Python
Python3之手动创建迭代器的实例代码
2019/05/22 Python
pyQt5实时刷新界面的示例
2019/06/25 Python
Pytorch加载部分预训练模型的参数实例
2019/08/18 Python
Python图像处理库PIL的ImageGrab模块介绍详解
2020/02/26 Python
对python中各个response的使用说明
2020/03/28 Python
python中sort sorted reverse reversed函数的区别说明
2020/05/11 Python
芬兰汽车配件商店:Autonvaraosat24
2017/01/30 全球购物
全球最大的房车租赁市场:Outdoorsy
2018/09/19 全球购物
工作的心得体会
2013/12/31 职场文书
英语自我评价范文
2014/01/24 职场文书
信用卡结清证明怎么写
2014/09/13 职场文书
工厂员工辞职信范文
2015/05/12 职场文书
2015年保险业务员工作总结
2015/05/27 职场文书
致短跑运动员加油稿
2015/07/21 职场文书
学校团代会开幕词
2016/03/04 职场文书
实用求职信模板范文
2019/05/13 职场文书