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 shell超强免杀、减少体积工具实现代码
Oct 16 PHP
基于PHP中的常用函数回顾
Jul 11 PHP
IIS6.0中配置php服务全过程解析
Aug 07 PHP
php将文本文件转换csv输出的方法
Dec 31 PHP
PHP的邮件群发系统phplist配置方法详细总结
Mar 30 PHP
php用户登录之cookie信息安全分析
May 13 PHP
用PHP写的一个冒泡排序法的函数简单实例
May 26 PHP
PHP自定义多进制的方法
Nov 03 PHP
PHP单例模式与工厂模式详解
Aug 29 PHP
laravel 执行迁移回滚示例
Oct 23 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
Nov 25 PHP
TP5框架实现自定义分页样式的方法示例
Apr 05 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
ThinkPHP CURD方法之field方法详解
2014/06/18 PHP
php中in_array函数用法分析
2014/11/15 PHP
PHP全局变量与超级全局变量区别分析
2016/04/01 PHP
php微信公众平台开发(三)订阅事件处理
2016/12/06 PHP
Thinkphp结合ajaxFileUpload实现异步图片传输示例
2017/03/13 PHP
yii2 commands模式以及配置crontab定时任务的方法
2017/08/19 PHP
MSN消息提示类
2006/09/05 Javascript
jQuery选择器中含有空格的使用示例及注意事项
2013/08/25 Javascript
JavaScript对内存分配及管理机制详细解析
2013/11/11 Javascript
javascript模拟map输出与去除重复项的方法
2015/02/09 Javascript
基于jQuery实现Ajax验证用户名是否存在实例
2016/03/30 Javascript
利用React-router+Webpack快速构建react程序
2016/10/27 Javascript
js实现把图片的绝对路径转为base64字符串、blob对象再上传
2016/12/29 Javascript
JQuery Dialog对话框 不能通过Esc关闭的原因分析及解决办法
2017/01/18 Javascript
iview给radio按钮组件加点击事件的实例
2017/09/30 Javascript
boostrap模态框二次弹出清空原有内容的方法
2018/08/10 Javascript
Javascript地址引用代码实例解析
2020/02/25 Javascript
[05:05]第三天的dota2
2013/07/29 DOTA
使用python搭建Django应用程序步骤及版本冲突问题解决
2013/11/19 Python
Python中的pprint折腾记
2015/01/21 Python
django将图片上传数据库后在前端显式的方法
2018/05/25 Python
使用python爬取抖音视频列表信息
2019/07/15 Python
python2 对excel表格操作完整示例
2020/02/23 Python
使用sklearn对多分类的每个类别进行指标评价操作
2020/06/11 Python
新手常见Python错误及异常解决处理方案
2020/06/18 Python
python报错: 'list' object has no attribute 'shape'的解决
2020/07/15 Python
Python 带星号(* 或 **)的函数参数详解
2021/02/23 Python
HTML5 的新的表单元素(datalist/keygen/output)使用介绍
2013/07/19 HTML / CSS
美国家居装饰和豪华家具购物网站:One Kings Lane
2018/12/24 全球购物
捷克建筑材料网上商店:DEK.cz
2021/03/06 全球购物
心理健康课教学反思
2014/02/13 职场文书
个人融资协议书范本两则
2014/10/15 职场文书
2014年卫生工作总结
2014/11/27 职场文书
绵山导游词
2015/02/05 职场文书
《童年》读后感(三篇)
2019/08/27 职场文书
2019年市场部个人述职报告(三篇)
2019/10/23 职场文书