PHP过滤html注释
过滤html注释:
所谓过滤,不过是字符串的匹配与替换,这里我们用到的正则匹配替换函数preg_replace(reg,replace,string);,PHPer都清楚,这个函数的关键在于reg的精确度,那么我们就来试试看吧:
首先要知道html注释的格式,是这样的:<!--注释内容-->。
开始正则的书写
$html = "<!--something-->something";
$html = preg_replace("/<!--.*-->/","",$html);
echo $html;
上面的代码将输出 something,似乎成功了呢,不急,多测试几个例子
$html = "<!--something-->something<!--something-->";
$html = preg_replace("/<!--.*-->/","",$html);
echo $html;
这个例子告诉我们,这样写并不能达到我们期望的效果,于是正则优化成了这样
preg_replace("/<!--.*?-->/","",$html);
嗯,这下满意了,但是html中会存在这样的代码<!--[if lt IE 9]>something<![endif]-->,这是浏览器兼容代码,显然是不能被过滤的,所以我们的正则继续优化,变成这样
preg_replace("/<!--[^\!\[]*?-->/","",$html);
又接着如果html中有<script><!--something//--></script>的代码,我们又需要改一下我们的匹配规则了,改成了这样
preg_replace("/<!--[^\!\[]*?(?<!\/\/)-->/","",$html);
这样的话我基本上就去掉了我需要去掉的html的注释了!
意外收获:在优化过程中,没有多多行注释进行考虑,但规则意外的正常匹配了多行注释,不知道是否因为是从文件读取的html!
经测试尚未发现有将正文过滤掉的情况,如有疑问,欢迎留言指正。
PHP过滤html注释的更多相关文章
- SQL注入之Sqli-labs系列第二十五关(过滤 OR & AND)和第二十五A关(过滤逻辑运算符注释符)
开始挑战第二十五关(Trick with OR & AND) 第二十五关A(Trick with comments) 0x1先查看源码 (1)这里的or和and采用了i正则匹配,大小写都无法绕 ...
- C# 读xml注释或过滤xml注释
有这么个需求: 要统计所有的配置文件,这些配置文件都xml格式,并把这些配置写到数据表里,如果有注释要把这些注释写到对应配置对象的描述字段上 <item id="" key= ...
- [SWPU2019]Web1 空格过滤用/**/ 注释过滤闭合单引号 imformation_schema.columns/tables过滤 用5.7新特性 或无名注入(此处database()不能用)
0x00 知识点 二次注入流程分析 二次注入漏洞在CTF中常见于留言板和注册登录功能,简单来说可以分为两个步骤: 插入恶意数据(发布帖子,注册账号),用mysql_escape_string()函数对 ...
- 正则表达式过滤html注释内容
Regex.Replace("<!--(.|[\r\n])*?-->",string.Empty)
- 代码反向生成数据库注释更新sql
原理 通过反射实体所在程序集,得到枚举值列表,再通过sql获取数据库表结构,两者拼接成sql. 规范 实体枚举字段最好也加上Description特性,方便多次更新: 代码 实体定义 public p ...
- 【software】变异注释工具:annovar
annovar提供三种注释方式 一,基于基因的注释 给定变异,看变异是否影响编码蛋白的改变 支持基因定义系统:RefSeq genes, UCSC genes, ENSEMBL genes, GENC ...
- sqli-labs lexx25-28a(各种过滤)
less-25AND OR 过滤 less-25a基于Bool_GET_过滤AND/OR_数字型_盲注 less-26过滤了注释和空格的注入 less-26a过滤了空格和注释的盲注 less-27过滤 ...
- Burp Suite使用介绍
Burp Suite使用介绍(一) 22人收藏 收藏 2014/05/01 19:54 | 小乐天 | 工具收集 | 占个座先 Getting Started Burp Suite 是用于攻击web ...
- Fiddler录制jmeter脚本--V4.4..0.1版本
圣诞节到了,圣诞老人送平安,我们送技术,我们知道以前jmeter的脚本来源有三个,手动书写.badboy录制.自带的录制功能(jmeter3.0该功能还比较好),目前我们又多了一个fiddler生 ...
随机推荐
- 【特征匹配】SIFT原理之KD树+BBF算法解析
转载请注明出处:http://blog.csdn.net/luoshixian099/article/details/47606159 继上一篇中已经介绍了SIFT原理与C源代码剖析,最后得到了一系列 ...
- RedisUtil: Jedis连接自动释放
package cloud.app.prod.home.utils; import redis.clients.jedis.Jedis; import redis.clients.jedis.Jedi ...
- 使用playonlinux安装windows软件
转载 http://qspy.is-programmer.com/posts/40913.html Wine提供了一个用来运行Windows程序的平台.PlayOnLinux 是使用 Python 写 ...
- mac os lscpu 【转】
CPU Information on Linux and OS X This is small blog post detailing how to obtain information on you ...
- 从map到hash
https://zybuluo.com/ysner/note/1175387 前言 这两种技巧常用于记录和去重量少而分散的状态. 都体现了映射思想. \(map\) 我一般是数组开不下时拿这玩意判重. ...
- EOJ 1641/UVa The SetStack Computer
Background from Wikipedia: “Set theory is a branch of mathematics created principally by the German ...
- 使用pycharm进行简单的数据库管理
功能简介 pycharm自带了一个简单的数据库插件,可以比较方便的进行简单的数据库操作. 例如: 1.创建,修改和删除数据表,字段,索引,主键,外键等. 2.提供table editor来进行数据操作 ...
- codevs2800送外卖(floyd+状压dp)
2800 送外卖 时间限制: 2 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond 题目描述 Description 有一个送外卖的,他手上有n份订单,他要把n份东 ...
- BZOJ 4565 状压DP
思路: f[i][j][S]表示从i到j压成S状态 j-m是k-1的倍数 $f[i][j][S<<1]=max(f[i][j][S<<1],f[i][m-1][S]+f[m][ ...
- BZOJ 2101 DP+优化
思路: http://www.cnblogs.com/exponent/archive/2011/08/14/2137849.html f[i,i+len]=sum[i,i+len]-min(f[i+ ...