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 相关文章推荐
DW中链接mysql数据库时,建立字符集中文出现乱码的解决方法
Mar 27 PHP
PHP抓取、分析国内视频网站的视频信息工具类
Apr 02 PHP
php从数据库查询结果生成树形列表的方法
Apr 17 PHP
php使用Session和文件统计在线人数
Jul 04 PHP
分享php代码将360浏览器导出的favdb的sqlite数据库文件转换为html
Dec 09 PHP
PHP生成制作验证码的简单实例
Jun 12 PHP
php微信开发之上传临时素材
Jun 24 PHP
thinkphp中AJAX返回ajaxReturn()方法分析
Dec 06 PHP
PHP实现Session入库/存入redis的方法
May 04 PHP
PHP编程计算文件或数组中单词出现频率的方法
May 22 PHP
PHP 传输会话curl函数的实例详解
Sep 12 PHP
如何在Laravel之外使用illuminate组件详解
Sep 20 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中source #N问题的解决方法
2014/01/27 PHP
MooTools 1.2中的Drag.Move来实现拖放
2009/09/15 Javascript
jquery实现文本框鼠标右击无效以及不能输入的代码
2010/11/05 Javascript
jQuery.extend()的实现方式详解及实例
2013/06/29 Javascript
jquery动态增加text元素以及删除文本内容实例代码
2013/07/01 Javascript
jQuery实现鼠标滑过遮罩并高亮显示效果
2013/07/16 Javascript
Jquery中CSS选择器用法分析
2015/02/10 Javascript
javascript实现图片跟随鼠标移动效果的方法
2015/05/13 Javascript
浅谈JS中的!=、== 、!==、===的用法和区别
2016/09/24 Javascript
three.js实现3D视野缩放效果
2017/11/16 Javascript
一些你可能不熟悉的JS知识点总结
2019/03/15 Javascript
详解微信小程序工程化探索之webpack实战
2020/04/20 Javascript
VueCli4项目配置反向代理proxy的方法步骤
2020/05/17 Javascript
浅谈Python中的数据类型
2015/05/05 Python
pyqt5的QWebEngineView 使用模板的方法
2018/08/18 Python
利用python实现汉字转拼音的2种方法
2019/08/12 Python
Python 利用邮件系统完成远程控制电脑的实现(关机、重启等)
2019/11/19 Python
selenium+python实现自动登陆QQ邮箱并发送邮件功能
2019/12/13 Python
Python Tensor FLow简单使用方法实例详解
2020/01/14 Python
Tensorflow tf.tile()的用法实例分析
2020/05/22 Python
详解python3类型注释annotations实用案例
2021/01/20 Python
error和exception有什么区别
2012/10/02 面试题
药品质量检测应届生求职信
2013/11/14 职场文书
计算机操作自荐信
2013/12/07 职场文书
业务总经理岗位职责
2014/02/03 职场文书
大学毕业生求职自荐信
2014/02/20 职场文书
人民教师的自我评价分享
2014/02/21 职场文书
服务承诺书范文
2014/05/19 职场文书
机械机修工岗位职责
2014/08/03 职场文书
寝室长工作失责检讨书
2014/10/06 职场文书
新郎结婚保证书
2015/02/26 职场文书
描述鲁迅的名言整理,一生受用
2019/08/08 职场文书
redis通过6379端口无法连接服务器(redis-server.exe闪退)
2021/05/08 Redis
MybatisPlus代码生成器的使用方法详解
2021/06/13 Java/Android
分布式架构Redis中有哪些数据结构及底层实现原理
2022/03/13 Redis
vue实现在data里引入相对路径
2022/06/05 Vue.js