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 cache类代码(php数据缓存类)
Apr 15 PHP
PHP版网站缓存加快打开速度的方法分享
Jun 03 PHP
zf框架的Filter过滤器使用示例
Mar 13 PHP
php+mysql结合Ajax实现点赞功能完整实例
Jan 30 PHP
php查询mysql大量数据造成内存不足的解决方法
Mar 04 PHP
深入浅出php socket编程
May 13 PHP
php封装的验证码工具类完整实例
Oct 19 PHP
利用php做服务器和web前端的界面进行交互
Oct 31 PHP
简单谈谈 php 文件锁
Feb 19 PHP
php readfile下载大文件失败的解决方法
May 22 PHP
PHP使用redis消息队列发布微博的方法示例
Jun 22 PHP
微信企业转账之入口类分装php代码
Oct 01 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 得到根目录的 __FILE__ 常量
2008/07/23 PHP
9个PHP开发常用功能函数小结
2011/07/15 PHP
Laravel5中防止XSS跨站攻击的方法
2016/10/10 PHP
ThinkPHP实现静态缓存和动态缓存示例代码
2017/05/02 PHP
Laravel框架运行出错提示RuntimeException No application encryption key has been specified.解决方法
2019/04/02 PHP
用javascript获取textarea中的光标位置
2008/05/06 Javascript
JavaScript入门学习书籍推荐
2008/06/12 Javascript
javascript 装载iframe子页面,自适应高度
2009/03/20 Javascript
jQuery Ajax 加载数据时异步显示加载动画
2016/08/01 Javascript
JavaScript中关于for循环删除数组元素内容时出现的问题
2016/11/21 Javascript
jQuery删除当前节点元素
2016/12/07 Javascript
JS实现复制内容到剪贴板功能
2017/02/05 Javascript
Vue.directive()的用法和实例详解
2018/03/04 Javascript
layui之select的option叠加问题的解决方法
2018/03/08 Javascript
jQuery中常用动画效果函数知识点整理
2018/08/19 jQuery
vue实现一个炫酷的日历组件
2018/10/08 Javascript
微信小程序ibeacon三点定位详解
2018/10/31 Javascript
js时间转换毫秒的实例代码
2019/08/21 Javascript
详细分析Node.js 模块系统
2020/06/28 Javascript
用Python实现web端用户登录和注册功能的教程
2015/04/30 Python
Python 通配符删除文件的实例
2018/04/24 Python
python 每天如何定时启动爬虫任务(实现方法分享)
2018/05/21 Python
详解Python下Flask-ApScheduler快速指南
2018/11/04 Python
对python 合并 累加两个dict的实例详解
2019/01/21 Python
Django 实现前端图片压缩功能的方法
2019/08/07 Python
Django xadmin开启搜索功能的实现
2019/11/15 Python
wxPython多个窗口的基本结构
2019/11/19 Python
对tensorflow中的strides参数使用详解
2020/01/04 Python
利用Python实现某OA系统的自动定位功能
2020/05/27 Python
python实现按日期归档文件
2021/01/30 Python
Currentbody澳大利亚:美容仪专家
2019/11/11 全球购物
内部类的定义、种类以及优点
2013/10/16 面试题
综合素质的自我鉴定
2013/10/07 职场文书
八一慰问活动方案
2014/02/07 职场文书
专业技术职务聘任书
2014/03/29 职场文书
党员查摆剖析材料
2014/10/10 职场文书