php使用正则表达式去掉html中的注释方法


Posted in PHP onNovember 03, 2016

最近在项目中在需要输出浏览器中的源文件需要去掉html中的注释,在网上看了很多的方案,不过很多的答案都是一样的,并不能解决我的问题,于是就自己写正则表达式,也对正则有了更加深刻的理解。

首先比较基础的是:

$a = '<!--ceshi-->ceshi';
$a = preg_replace('#<!--.*-->#' , '' , $a);
var_dump($a);

上面的代码会输出ceshi。

但是如果是下面的字符串的话,就不能达到我们希望的效果了

$a = '<!--ceshi-->ceshi<!--ceshi-->';
$a = preg_replace('#<!--.*-->#' , '' , $a);
var_dump($a);

于是我们就把匹配规则改成如下的格式

preg_replace('#<!--.*?-->#' , '' , $a);

但是在html中如果有<!--[if lt IE 9]>ceshi<![endif]-->这样的代码的话是不能去掉的,所以我们需要改进匹配规则,改成以下的格式

preg_replace('#<!--[^\!\[]*?-->#' , '' , $a);

又接着如果html中有<script><!--ceshi//--></script>的代码,我们又需要改一下我们的匹配规则了,改成了以下格式

preg_replace('#<!--[^\!\[]*?(?<!\/\/)-->#' , '' , $a);

这样的话我基本上就去掉了我需要去掉的html的注释了!

以上就是小编为大家带来的php使用正则表达式去掉html中的注释方法全部内容了,希望大家多多支持三水点靠木~

PHP 相关文章推荐
mysql_fetch_row,mysql_fetch_array,mysql_fetch_assoc的区别
Apr 24 PHP
浅析PHP页面局部刷新功能的实现小结
Jun 21 PHP
PHP5中GD库生成图形验证码(有汉字)
Jul 28 PHP
php中数字0和空值的区别分析
Jun 05 PHP
PHP集成百度Ueditor 1.4.3
Nov 23 PHP
php实现parent调用父类的构造方法与被覆写的方法
Feb 11 PHP
浅谈PHP中单引号和双引号到底有啥区别呢?
Mar 04 PHP
PHP性能优化大全(php.ini)
May 20 PHP
PHP培训要多少钱
Jun 06 PHP
PHP获取数组中单列值的方法
Jun 10 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
Nov 13 PHP
PHP笛卡尔积实现算法示例
Jul 30 PHP
使用正则去除php代码中的注释方法
Nov 03 #PHP
php cookie 详解使用实例
Nov 03 #PHP
PHP使用curl制作简易百度搜索
Nov 03 #PHP
php 防止表单重复提交两种实现方法
Nov 03 #PHP
PHP HTTP 认证实例详解
Nov 03 #PHP
php将print_r处理后的数据还原为原始数组的解决方法
Nov 02 #PHP
php实现HTML实体编号与非ASCII字符串相互转换类实例
Nov 02 #PHP
You might like
ob_start(),ob_start('ob_gzhandler')使用
2006/12/25 PHP
PHP中使用foreach和引用导致程序BUG的问题介绍
2012/09/05 PHP
smarty模板引擎从php中获取数据的方法
2015/01/22 PHP
php命令行写shell实例详解
2018/07/19 PHP
PHP的PDO错误与错误处理
2019/01/27 PHP
JavaScript中Array 对象相关的几个方法
2006/12/22 Javascript
jQuery ready函数滥用分析
2011/02/16 Javascript
面向对象Javascript核心支持代码分享
2012/05/23 Javascript
Array.prototype.concat不是通用方法反驳[译]
2012/09/20 Javascript
javascript中window.event事件用法详解
2012/12/11 Javascript
单击按钮显示隐藏子菜单经典案例
2013/01/04 Javascript
深入探寻javascript定时器
2015/01/02 Javascript
元素绑定click点击事件方法
2015/06/08 Javascript
Javascript的表单验证长度
2016/03/16 Javascript
JS实现简单的tab切换选项卡效果
2016/09/21 Javascript
基于vue.js实现侧边菜单栏
2017/03/20 Javascript
js canvas实现适用于移动端的百分比仪表盘dashboard
2017/07/18 Javascript
详解js几个绕不开的事件兼容写法
2017/08/30 Javascript
js断点调试心得分享(必看篇)
2017/12/08 Javascript
原生JS实现的双色球功能示例
2018/02/02 Javascript
[00:17]DOTA2荣耀之路5:It’s a disastah!
2018/05/28 DOTA
Python高级特性切片(Slice)操作详解
2018/09/27 Python
python 分离文件名和路径以及分离文件名和后缀的方法
2018/10/21 Python
pytorch 实现在预训练模型的 input上增减通道
2020/01/06 Python
伦敦一卡通:The London Pass
2018/11/30 全球购物
到底Java是如何传递参数的?是by value或by reference?
2012/07/13 面试题
计算 s=(x*y)1/2,用两个宏定义来实现
2016/08/11 面试题
如何将一个描述日期或日期/时间的字符串转换为一个Date对象
2015/10/13 面试题
动物学专业毕业生求职信
2013/10/11 职场文书
法学研究生自我鉴定范文
2013/12/04 职场文书
股东协议书范本
2014/04/14 职场文书
美术指导助理求职信
2014/04/20 职场文书
大学生求职计划书
2014/04/30 职场文书
夏季药店促销方案
2014/08/22 职场文书
自查自纠工作总结
2014/10/15 职场文书
在前女友婚礼上,用Python破解了现场的WIFI还把名称改成了
2021/05/28 Python