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 相关文章推荐
ASP知识讲座四
Oct 09 PHP
PHP中for循环语句的几种变型
Nov 26 PHP
php 面向对象的一个例子
Apr 12 PHP
PHP笔记之:日期函数的使用介绍
Apr 24 PHP
php中文验证码实现示例分享
Jan 12 PHP
PHP全局变量与超级全局变量区别分析
Apr 01 PHP
PHP框架Laravel插件Pagination实现自定义分页
Apr 22 PHP
php+ajax简单实现全选删除的方法
Dec 06 PHP
PHP递归遍历文件夹去除注释并压缩php源代码的方法示例
May 23 PHP
用PHP做了一个领取优惠券活动的示例代码
Jul 05 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
Dec 20 PHP
PHP基于ip2long实现IP转换整形
Dec 11 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伪静态之APACHE篇
2014/06/02 PHP
Zend Framework动作助手Json用法实例分析
2016/03/05 PHP
Yii2实现ajax上传图片插件用法
2016/04/28 PHP
FormValidate 表单验证功能代码更新并提供下载
2008/08/23 Javascript
基于jQuery实现表格数据的动态添加与统计的代码
2011/01/31 Javascript
js 创建书签小工具之理论
2011/02/25 Javascript
jquery easyui combox一些实用的小方法
2013/12/25 Javascript
jQuery Ajax 异步加载显示等待效果代码分享
2016/08/01 Javascript
JQuery学习总结【二】
2016/12/01 Javascript
jQuery动态增减行的实例代码解析(推荐)
2016/12/05 Javascript
vue2 自定义动态组件所遇到的问题
2017/06/08 Javascript
浅谈vue-router2路由参数注意的问题
2017/11/08 Javascript
vue添加class样式实例讲解
2019/02/12 Javascript
webpack打包html里面img后src为“[object Module]”问题
2019/12/22 Javascript
python多线程http下载实现示例
2013/12/30 Python
Python操作json数据的一个简单例子
2014/04/17 Python
Python_LDA实现方法详解
2017/10/25 Python
Python 12306抢火车票脚本 Python京东抢手机脚本
2018/02/06 Python
Python使用pickle模块储存对象操作示例
2018/08/15 Python
python 一个figure上显示多个图像的实例
2019/07/08 Python
8种常用的Python工具
2020/08/05 Python
详解PyQt5中textBrowser显示print语句输出的简单方法
2020/08/07 Python
汽车检测与维修应届毕业生求职信
2013/10/19 职场文书
审核会计岗位职责
2013/11/08 职场文书
师范大学生求职信
2014/06/13 职场文书
2014年妇委会工作总结
2014/12/10 职场文书
行政主管岗位职责
2015/02/03 职场文书
2015年财务人员个人工作总结
2015/07/27 职场文书
2016年优秀团员事迹材料
2016/02/25 职场文书
来探秘“德国中小企业”的成功之道
2019/07/26 职场文书
《家》读后感:万惜拯救,冷暖自知
2019/09/25 职场文书
学会Python数据可视化必须尝试这7个库
2021/06/16 Python
Python自动化测试PO模型封装过程详解
2021/06/22 Python
Java如何实现树的同构?
2021/06/22 Java/Android
python使用torch随机初始化参数
2022/03/22 Python
Python基本知识点总结
2022/04/07 Python