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 相关文章推荐
Windows2003 下 MySQL 数据库每天自动备份
Dec 21 PHP
php获取mysql版本的几种方法小结
Mar 25 PHP
fleaphp crud操作之findByField函数的使用方法
Apr 23 PHP
php中get_headers函数的作用及用法的详细介绍
Apr 27 PHP
PHP中浮点数计算比较及取整不准确的解决方法
Jan 09 PHP
PHP实现对数组分页处理实例详解
Feb 07 PHP
yii插入数据库防并发的简单代码
May 27 PHP
浅谈PHP实现大流量下抢购方案
Dec 15 PHP
php实现mysql连接池效果实现代码
Jan 25 PHP
PHP设计模式之状态模式定义与用法详解
Apr 02 PHP
浅谈laravel数据库查询返回的数据形式
Oct 21 PHP
PHP 扩展Memcached命令用法实例总结
Jun 04 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
Parse正式发布开源PHP SDK
2014/08/11 PHP
php字符比较函数similar_text、strnatcmp与strcasecmp用法分析
2014/11/18 PHP
PHP使用zlib扩展实现GZIP压缩输出的方法详解
2018/04/09 PHP
php 可变函数使用小结
2018/06/12 PHP
在你的网页中嵌入外部网页的方法
2007/04/02 Javascript
Jquery ajax不能解析json对象,报Invalid JSON错误的原因和解决方法
2010/03/27 Javascript
基于BootStrap Metronic开发框架经验小结【六】对话框及提示框的处理和优化
2016/05/12 Javascript
JavaScript常用判断写法大全(推荐)
2016/05/30 Javascript
微信小程序 点击控件后选中其它反选实例详解
2017/02/21 Javascript
Vue-Router模式和钩子的用法
2018/02/28 Javascript
解决vue单页路由跳转后scrollTop的问题
2018/09/03 Javascript
详解Vue CLI 3.0脚手架如何mock数据
2018/11/23 Javascript
jstree中的checkbox默认选中和隐藏示例代码
2019/12/29 Javascript
vue+node 实现视频在线播放的实例代码
2020/10/19 Javascript
用Python写一个无界面的2048小游戏
2016/05/24 Python
python魔法方法-自定义序列详解
2016/07/21 Python
纯python实现机器学习之kNN算法示例
2018/03/01 Python
手把手教你如何安装Pycharm(详细图文教程)
2018/11/28 Python
opencv 图像加法与图像融合的实现代码
2020/07/08 Python
python获取命令行参数实例方法讲解
2020/11/02 Python
python抢购软件/插件/脚本附完整源码
2021/03/04 Python
绿色美容,有机护肤品和化妆品:Safe & Chic
2018/10/29 全球购物
HomeAway澳大利亚:预订你的度假屋,公寓、度假村、别墅等
2019/02/20 全球购物
《小猫刮胡子》教学反思
2014/02/21 职场文书
植树造林的宣传标语
2014/06/23 职场文书
港澳通行证委托书怎么写
2014/08/02 职场文书
群众路线教育查摆剖析材料
2014/10/10 职场文书
招商引资工作汇报材料
2014/10/28 职场文书
2014年护理部工作总结
2014/11/14 职场文书
电影雨中的树观后感
2015/06/15 职场文书
基层工作经历证明
2015/06/19 职场文书
《亲亲我的妈妈》观后感(3篇)
2019/09/26 职场文书
Matplotlib可视化之添加让统计图变得简单易懂的注释
2021/06/11 Python
PyQt5结合QtDesigner实现文本框读写操作
2021/06/11 Python
Nginx反向代理配置的全过程记录
2021/06/22 Servers
maven 解包依赖项中的文件的解决方法
2022/07/15 Java/Android