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实现ODBC数据分页显示一例
Oct 09 PHP
PHP5 安装方法
Jan 15 PHP
PHP下利用header()函数设置浏览器缓存的代码
Sep 01 PHP
重新封装zend_soap实现http连接安全认证的php代码
Jan 12 PHP
rephactor 优秀的PHP的重构工具
Jun 09 PHP
php中获得视频时间总长度的另一种方法
Sep 15 PHP
PHP跳转页面的几种实现方法详解
Jun 08 PHP
phpstorm编辑器乱码问题解决
Dec 01 PHP
PHP对象链式操作实现原理分析
Oct 09 PHP
轻松实现php文件上传功能
Feb 17 PHP
PHP实现时间比较和时间差计算的方法示例
Jul 24 PHP
php给数组赋值的实例方法
Sep 26 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中用文本文件做数据库的实现方法
2008/03/27 PHP
PHP实现获取中英文首字母
2015/06/19 PHP
Yii2分页的使用及其扩展方法详解
2016/05/23 PHP
php查询及多条件查询
2017/02/26 PHP
PHP实现自动发送邮件功能代码(qq 邮箱)
2017/08/18 PHP
PHP 多进程与信号中断实现多任务常驻内存管理实例方法
2019/10/04 PHP
JavaScript高级程序设计 阅读笔记(二十) js错误处理
2012/08/14 Javascript
JQuery实现动态适时改变字体颜色的方法
2015/03/10 Javascript
强大Vue.js组件浅析
2016/09/12 Javascript
Javascript 制作图形验证码实例详解
2016/12/22 Javascript
node.js连接MongoDB数据库的2种方法教程
2017/05/17 Javascript
探究react-native 源码的图片缓存问题
2017/08/24 Javascript
vue项目在安卓低版本机显示空白的原因分析(两种)
2018/09/04 Javascript
vue新建项目并配置标准路由过程解析
2019/12/09 Javascript
DWR内存兼容及无法调用问题解决方案
2020/10/16 Javascript
[08:04]TI4西雅图DOTA2前线报道 海涛探访各路人马
2014/07/09 DOTA
[49:08]FNATIC vs Infamous 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
Python安装使用命令行交互模块pexpect的基础教程
2016/05/12 Python
对Tensorflow中权值和feature map的可视化详解
2018/06/14 Python
NLTK 3.2.4 环境搭建教程
2018/09/19 Python
python利用tkinter实现屏保
2019/07/30 Python
python线程中的同步问题及解决方法
2019/08/29 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
2020/03/09 Python
Jupyter Notebook打开任意文件夹操作
2020/04/14 Python
解决tensorflow读取本地MNITS_data失败的原因
2020/06/22 Python
html5 viewport使用方法示例详解
2013/12/02 HTML / CSS
结构工程个人自荐信范文
2013/11/30 职场文书
建筑班组长岗位职责
2014/01/02 职场文书
《神奇的克隆》教学反思
2014/04/10 职场文书
财务部绩效考核方案
2014/05/04 职场文书
委托函范文
2015/01/29 职场文书
老公婚前保证书
2015/02/28 职场文书
青年干部培训班学习心得体会
2016/01/06 职场文书
2021年最新用于图像处理的Python库总结
2021/06/15 Python
Python中的嵌套循环详情
2022/03/23 Python
世界无敌的ICOM IC-R9500宽频接收机
2022/03/25 无线电