PHP过滤HTML标签的三种方法
在做项目的过程中,我们经常需要用到过滤一些html标签来实现提高数据的安全性,其实就是删除那些对应用程序有潜在危害的数据。它用于去除标签以及删除或编码不需要的字符。
首先分享一些比较常见的
$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标签 // http://www.manongjc.com/article/1345.html $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 http://www.manongjc.com/article/1345.html $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); }
转载于:https://www.cnblogs.com/myhomepages/p/5988669.html
PHP过滤HTML标签的三种方法相关推荐
- 如何去掉友情链接的li标签的三种方法
{dede:flink row="24" type="textall"}解析出来的是带LI ,那如何去掉LI了,有两种方法 1.{dede:flink lin ...
- html5中标签分为,HTML标签的三种类型
HTML标签的类型分为三种:行内元素,行内块元素,块级元素 而标签的属性是可以转换的 display:inline: 转换为行内元素 display:linline-block 转换为行内块元素 di ...
- php 删除指定html标签,php删除html标签的三种解决办法
分享下PHP删除HTMl标签的三种方法. 方法1: 直接取出想要取出的标记 function strip($str) {$str=str_replace(" ","&qu ...
- 相对定位 绝对定位 固定定位 粘性定位 居中的三种方法 calc函数标签的使用方法
相对定位 绝对定位 固定定位 粘性定位 居中的三种方法 calc函数标签的使用方法 一.相对定位:position:relative; 二.绝对定位:position:absolute; 1.找参照物 ...
- svg标签和svg文件区别_SVGO减少SVG文件大小的三种方法
svg标签和svg文件区别 This article is part of a series created in partnership with SiteGround. Thank you for ...
- 给li 标签平添图标的三种方法
给li 标签添加图标的三种方法 1.使用CSS的特殊属性 ul{list-style-type:disc;} //disc的作用是在每个li前加一个黑点,其他常用的有square:黑色方块;no ...
- html 如何给图片打标签,图文详解HTML页面中添加图片的三种方法
在页面布局时,经常需要在页面中插入图片,那你知道如何在HTML中添加图片吗?这篇文章就给大家介绍HTML页面中插入图片的三种方法,感兴趣的朋友可以参考一下,希望对你有所帮助. 方法一.用HTML中的i ...
- 自然语言处理NLP——中文抽取式自动文摘(包括中文语料库处理、三种方法实现自动文摘、Rouge评价方法对自动文摘进行打分)
利用三种方法实现抽取式自动摘要,并给摘要结果打分(一.textrank 二.word2vec+textrank 三.MMR 四.Rouge评测) 具体代码我上传到了Github上,其中有45篇小论文( ...
- 独家 | 将时间信息编码用于机器学习模型的三种编码时间信息作为特征的三种方法...
作者:Eryk Lewinson 翻译:汪桉旭 校对:zrx本文约4400字,建议阅读5分钟 本文研究了三种使用日期相关的信息如何创造有意义特征的方法. 标签:时间帧,机器学习,Python,技术演示 ...
最新文章
- Android窗口View层次
- rapidjson官方教程
- java检索txt文本_lucene索引word/pdf/html/txt文件及检索(搜索引擎)
- Pyston v2.0 发布,速度比 Python 快 20%!
- java poi jar包下载_poi.jar包下载
- 【3D建模制作技巧分享】Zbrush如何将图片转浮雕模型
- FusionComputer密码修改
- Linux 系统不能正常关机解决办法
- chemdraw如何改中文_如何修改ChemDraw的默认输出格式
- 中国移动数据分析的七点经验
- 科大讯飞输入法android离线语音,讯飞输入法Android5.0.1752 离线语音更轻快的表达...
- Mac OS X 键盘字母键和数字键的切换
- Dogfight :从无人机视频中检测无人机
- xshell调用js脚本开发
- 论文浅尝 | ERNIE-ViL:从场景图中获取结构化知识来学习视觉语言联合表示
- python 单行if_python3绘图程序教学:单行If判断式(十三)
- 微型计算机的主频 即 在很大程度,计算机
- 21天Java开发速成篇-Java从入门到大师01快速入门
- 数学分析教程史济怀练习9.4
- 迁移系统激活已有的正版windows11专业版及office家庭学生版步骤
热门文章
- 其他的AdapterView——Spinner
- [概念学习] Virtualization的几个概念
- MVC Tutorial Movie DIY
- 终于从yahoo手中把域名抢救出来了
- FireEye 红队失窃工具大揭秘之:分析复现 Confluence路径穿越漏洞 (CVE-2019-3398)
- 成都睿铂盘点无人机航测三个极端恶劣环境的人员与设备防护指南
- 纠正存储 dict 的元素前是计算 key 的 hash 值?
- VC6.0 Raising Error spawning cl.exe solution
- 程序定义了多个入口点。使用 /main (指定包含入口点的类型)进行编译
- MDT2012+ADK8.0+WDS部署Windows客户端(一)部署概念和方法论