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 相关文章推荐
在WIN98下以apache模块方式安装php
Oct 09 PHP
PHP 批量删除 sql语句
Jun 05 PHP
检查url链接是否已经有参数的php代码 添加 ? 或 &amp;
Feb 09 PHP
PHP中strtotime函数使用方法分享
Jan 10 PHP
Ping服务的php实现方法,让网站快速被收录
Feb 04 PHP
PHP简洁函数(PHP简单明了函数语法)
Jun 10 PHP
用php制作简单分页(从数据库读取记录)的方法详解
May 04 PHP
php中的常用魔术方法总结
Aug 02 PHP
php switch语句多个值匹配同一代码块的实现
Mar 03 PHP
ThinkPHP关于session的操作方法汇总
Jul 18 PHP
详解PHP中的状态模式编程
Aug 11 PHP
php实现简易聊天室应用代码
Sep 23 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 mssql 时间格式问题
2009/01/13 PHP
在PHP中养成7个面向对象的好习惯
2010/01/28 PHP
PHP的博客ping服务代码
2012/02/04 PHP
easyui的tabs update正确用法分享
2014/03/21 PHP
cakephp2.X多表联合查询join及使用分页查询的方法
2017/02/23 PHP
使用SMB共享来绕过php远程文件包含的限制执行RFI的利用
2019/05/31 PHP
PHP变量的作用范围实例讲解
2020/12/22 PHP
JavaScript下申明对象的几种方法小结
2008/10/02 Javascript
jQuery弹出层插件简化版代码下载
2008/10/16 Javascript
起点页面传值js,有空研究学习下
2010/01/25 Javascript
Js+Flash实现访问剪切板操作
2012/11/20 Javascript
jquery中使用$(#form).submit()重写提交表单无效原因分析及解决
2013/03/25 Javascript
深入解析JavaScript中的变量作用域
2013/12/06 Javascript
js分页代码分享
2014/04/28 Javascript
跟我学Nodejs(三)--- Node.js模块
2014/05/25 NodeJs
js+css实现上下翻页相册代码分享
2015/08/18 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
2016/03/08 Javascript
浏览器复制插件zeroclipboard使用指南
2016/03/26 Javascript
30分钟快速掌握Bootstrap框架
2016/05/24 Javascript
原生js获取left值和top值的三种方法
2017/08/02 Javascript
Easyui和zTree两种方式分别实现树形下拉框
2017/08/04 Javascript
使用Vue制作图片轮播组件思路详解
2018/03/21 Javascript
javascript标准库(js的标准内置对象)总结
2018/05/26 Javascript
angular2/ionic2 实现搜索结果中的搜索关键字高亮的示例
2018/08/17 Javascript
通过循环优化 JavaScript 程序
2019/06/24 Javascript
微信小程序 确认框的实现(附代码)
2019/07/23 Javascript
vue中uni-app 实现小程序登录注册功能
2019/10/12 Javascript
Python中处理字符串之isalpha()方法的使用
2015/05/18 Python
在Django的上下文中设置变量的方法
2015/07/20 Python
基于python实现判断字符串是否数字算法
2020/07/10 Python
戴尔英国官网:Dell英国
2017/05/27 全球购物
美国巧克力喷泉品牌:Sephra
2019/05/05 全球购物
实习老师个人总结的自我评价
2013/09/28 职场文书
运动与健康自我评价
2015/03/09 职场文书
2015年度考核个人工作总结
2015/10/24 职场文书
python保存大型 .mat 数据文件报错超出 IO 限制的操作
2021/05/10 Python