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中创建并处理图象
Oct 09 PHP
我的论坛源代码(三)
Oct 09 PHP
PHP中动态显示签名和ip原理
Mar 28 PHP
几款免费开源的不用数据库的php的cms
Dec 19 PHP
Laravel5中contracts详解
Mar 02 PHP
PHP安装memcached扩展笔记
May 28 PHP
开启PHP Static 关键字之旅模式
Nov 13 PHP
yii2使用ajax返回json的实现方法
May 14 PHP
ThinkPHP5.0 图片上传生成缩略图实例代码说明
Jun 20 PHP
PHP如何使用JWT做Api接口身份认证的实现
Feb 03 PHP
PHP var关键字相关原理及使用实例解析
Jul 11 PHP
PHP safe_mode开启对于PHP系统函数有什么影响
Nov 10 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数字字符串左侧补0、字符串填充和自动补齐的几种方法
2014/05/10 PHP
VB中的RasEnumConnections函数返回632错误解决方法
2014/07/29 PHP
教你php如何实现验证码
2016/01/20 PHP
PHP手机号中间四位用星号*代替显示的实例
2017/06/02 PHP
从Ajax到JQuery Ajax学习
2007/02/14 Javascript
基于jQuery实现表格数据的动态添加与统计的代码
2011/01/31 Javascript
avascript中的自执行匿名函数应用示例
2014/09/15 Javascript
JavaScript实现当网页加载完成后执行指定函数的方法
2015/03/21 Javascript
JavaScript中的对象与JSON
2015/07/03 Javascript
JS实现点击按钮获取页面高度的方法
2015/11/02 Javascript
Vue组件之Tooltip的示例代码
2017/10/18 Javascript
浅谈vuepress 踩坑记
2018/04/18 Javascript
vue实现购物车抛物线小球动画效果的方法详解
2019/02/13 Javascript
vue实现购物车的小练习
2020/12/21 Vue.js
[45:52]2018DOTA2亚洲邀请赛 4.1小组赛 A组加赛 LGD vs Liquid
2018/04/02 DOTA
Python爬虫之模拟知乎登录的方法教程
2017/05/25 Python
django 2.0更新的10条注意事项总结
2018/01/05 Python
Python操作json的方法实例分析
2018/12/06 Python
Pandas之MultiIndex对象的示例详解
2019/06/25 Python
python3用urllib抓取贴吧邮箱和QQ实例
2020/03/10 Python
Tensorflow中的dropout的使用方法
2020/03/13 Python
pandas to_excel 添加颜色操作
2020/07/14 Python
python 19个值得学习的编程技巧
2020/08/15 Python
Bench加拿大官方网站:英国城市服装品牌
2017/11/03 全球购物
中东奢侈品市场:Coveti
2019/05/12 全球购物
车间调度岗位职责
2013/11/30 职场文书
硕士研究生就业推荐信
2014/05/18 职场文书
党的群众路线教育实践活动对照检查材料思想汇报
2014/09/19 职场文书
出资证明书范本(标准版)
2014/09/24 职场文书
2014年人民调解工作总结
2014/12/08 职场文书
毕业生党员个人总结
2015/02/14 职场文书
保送生自荐信
2015/03/06 职场文书
2015年七一建党节慰问信
2015/03/23 职场文书
上诉状格式
2015/05/23 职场文书
小学六年级毕业感言
2015/07/30 职场文书
i5-10400f处理相当于i7多少水平
2022/04/19 数码科技