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 相关文章推荐
使用 eAccelerator加速PHP代码的方法
Sep 30 PHP
用php实现选择排序的解决方法
May 04 PHP
PHP获取指定函数定义在哪个文件中以及其所在的行号实例
May 08 PHP
ThinkPHP CURD方法之data方法详解
Jun 18 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(五)
Jun 23 PHP
PHP进程同步代码实例
Feb 12 PHP
PHP查询附近的人及其距离的实现方法
May 11 PHP
thinkPHP引入类的方法详解
Dec 08 PHP
php简单构造json多维数组的方法示例
Jun 08 PHP
PHP实现找出有序数组中绝对值最小的数算法分析
Aug 07 PHP
PHP有序表查找之插值查找算法示例
Feb 10 PHP
PHP simplexml_import_dom()函数讲解
Feb 03 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模拟SQL Server的两个日期处理函数
2006/10/09 PHP
使用PHPCMS搭建wap手机网站
2015/09/20 PHP
阿里云的WindowsServer2016上部署php+apache
2018/07/17 PHP
php定期拉取数据对比方法实例
2019/09/22 PHP
javascript事件问题
2009/09/05 Javascript
jquery 倒计时效果实现秒杀思路
2013/09/11 Javascript
javascript结合CSS实现苹果开关按钮特效
2015/04/07 Javascript
Bootstrap的Refresh Icon也spin起来
2016/07/13 Javascript
angularjs实现文字上下无缝滚动特效代码
2016/09/04 Javascript
微信小程序自动客服功能
2017/11/02 Javascript
nodejs读取并去重excel文件
2018/04/22 NodeJs
layui table 复选框跳页后再回来保持原来选中的状态示例
2019/10/26 Javascript
在Vuex中Mutations修改状态操作
2020/07/24 Javascript
[47:03]Ti4第二日主赛事败者组 LGD vs iG 2
2014/07/21 DOTA
python实现外卖信息管理系统
2018/01/11 Python
代码讲解Python对Windows服务进行监控
2018/02/11 Python
python3实现网络爬虫之BeautifulSoup使用详解
2018/12/19 Python
Python中*args和**kwargs的区别详解
2019/09/17 Python
Python 单例设计模式用法实例分析
2019/09/23 Python
Flask中endpoint的理解(小结)
2019/12/11 Python
PyTorch的自适应池化Adaptive Pooling实例
2020/01/03 Python
python递归调用中的坑:打印有值, 返回却None
2020/03/16 Python
无惧面试,带你搞懂python 装饰器
2020/08/17 Python
Python request中文乱码问题解决方案
2020/09/17 Python
Python Django路径配置实现过程解析
2020/11/05 Python
Python 远程开关机的方法
2020/11/18 Python
鲜为人知的HTML5语音合成功能
2019/05/17 HTML / CSS
MATCHESFASHION.COM法国官网:英国奢侈品零售商
2018/01/04 全球购物
英国综合网上购物商城:The Hut
2018/07/03 全球购物
美国精油公司:Plant Therapy
2019/05/17 全球购物
说一下mysql, oracle等常见数据库的分页实现方案
2012/09/29 面试题
个人党性剖析材料
2014/02/03 职场文书
公司年底活动方案
2014/08/17 职场文书
看看如何用Python绘制小米新版天价logo
2021/04/20 Python
MySQL优化之如何写出高质量sql语句
2021/05/17 MySQL
python文件与路径操作神器 pathlib
2022/04/01 Python