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中变量及部分适用方法
Mar 27 PHP
使用php实现下载生成某链接快捷方式的解决方法
May 07 PHP
php中如何使对象可以像数组一样进行foreach循环
Aug 09 PHP
PHP数组与对象之间使用递归实现转换的方法
Jun 24 PHP
基于php实现随机合并数组并排序(原排序)
Nov 26 PHP
Yii控制器中filter过滤器用法分析
Jul 15 PHP
CI(CodeIgniter)框架视图中加载视图的方法
Mar 24 PHP
基于PHP常用文件函数和目录函数整理
Aug 17 PHP
PHP函数按引用传递参数及函数可选参数用法示例
Jun 04 PHP
PHP实现网站应用微信登录功能详解
Apr 11 PHP
PHP defined()函数的使用图文详解
Jul 20 PHP
PHP实现数组根据某个字段进行水平合并,横向合并案例分析
Oct 08 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截取中文字符串的问题
2006/07/12 PHP
用PHP写的MySQL数据库用户认证系统代码
2007/03/22 PHP
php读取目录所有文件信息dir示例
2014/03/18 PHP
php通过正则表达式记取数据来读取xml的方法
2015/03/09 PHP
php获取、检查类名、函数名、方法名的函数方法
2015/06/25 PHP
写入cookie的JavaScript代码库 cookieLibrary.js
2009/10/24 Javascript
jquery获取table中的某行全部td的内容方法
2013/03/08 Javascript
AngularJS手动表单验证
2016/02/01 Javascript
Node.js检测端口(port)是否被占用的简单示例
2016/09/29 Javascript
Javascript实现汉字和拼音互转的终极方案
2016/10/19 Javascript
Vue.js组件tree实现无限级树形菜单
2016/12/02 Javascript
Vue用v-for给src属性赋值的方法
2018/03/03 Javascript
详解关于Angular4 ng-zorro使用过程中遇到的问题
2018/12/05 Javascript
使用taro开发微信小程序遇到的坑总结
2019/04/08 Javascript
微信小程序的引导页实现代码
2020/06/24 Javascript
Python编程中的异常处理教程
2015/08/21 Python
python 环境变量和import模块导入方法(详解)
2017/07/11 Python
Django使用paginator插件实现翻页功能的实例
2018/10/24 Python
python 内置函数汇总详解
2019/09/16 Python
python开发实例之python使用Websocket库开发简单聊天工具实例详解(python+Websocket+JS)
2020/03/18 Python
基于HTML5的WebGL经典3D虚拟机房漫游动画
2017/11/15 HTML / CSS
英国外籍人士的在线超市:British Corner Shop
2019/06/03 全球购物
职称自我鉴定
2013/10/15 职场文书
应届生护士求职信
2013/11/01 职场文书
大学生实习思想汇报
2014/01/12 职场文书
专业技术职务聘任书
2014/03/29 职场文书
护理专业自荐书
2014/06/04 职场文书
职业规划实施方案
2014/06/10 职场文书
本科毕业答辩开场白
2015/05/27 职场文书
战友聚会致辞
2015/07/28 职场文书
《黄道婆》教学反思
2016/02/22 职场文书
五年级语文教学反思
2016/03/03 职场文书
Django给表单添加honeypot验证增加安全性
2021/05/06 Python
微信小程序实现拍照和相册选取图片
2021/05/09 Javascript
教你怎么用python爬取爱奇艺热门电影
2021/05/20 Python
python基础学习之生成器与文件系统知识总结
2021/05/25 Python