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 相关文章推荐
php 无限极分类
Mar 27 PHP
调试一段PHP程序时遇到的三个问题
Jan 17 PHP
php中邮箱地址正则表达式实现与详解
Apr 24 PHP
分享一则PHP定义函数代码
Feb 26 PHP
PHP计算指定日期所在周的开始和结束日期的方法
Mar 24 PHP
PHP扩展程序实现守护进程
Apr 16 PHP
PHP批量去除BOM头内容信息代码
Mar 11 PHP
Yii2使用swiftmailer发送邮件的方法
May 03 PHP
php微信高级接口群发 多客服
Jun 23 PHP
利用PHP抓取百度阅读的方法示例
Dec 18 PHP
YII中Ueditor富文本编辑器文件和图片上传的配置图文教程
Mar 15 PHP
php使用socket调用http和smtp协议实例小结
Jul 26 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
重置版宣传动画
2020/04/09 魔兽争霸
YII2框架中使用yii.js实现的post请求
2017/04/09 PHP
php上传后台无法收到数据解决方法
2019/10/28 PHP
php的instanceof和判断闭包Closure操作示例
2020/01/26 PHP
Javascript学习笔记6 prototype的提出
2010/01/11 Javascript
老鱼 浅谈javascript面向对象编程
2010/03/04 Javascript
为JavaScript提供睡眠功能(sleep) 自编译JS引擎
2010/08/16 Javascript
jquery入门——事件机制之事件中的冒泡现象示例解释
2020/09/12 Javascript
枚举的实现求得1-1000所有出现1的数字并计算出现1的个数
2013/09/10 Javascript
js中Image对象以及对其预加载处理示例
2013/11/20 Javascript
js中浮点型运算BUG的解决方法说明
2014/01/06 Javascript
jquery中checkbox全选失效的解决方法
2014/12/26 Javascript
JS获取url参数、主域名的方法实例分析
2016/08/03 Javascript
浅谈javascript中的数据类型转换
2016/12/27 Javascript
利用ES6语法重构React组件详解
2017/03/02 Javascript
jQuery使用zTree插件实现可拖拽的树示例
2017/09/23 jQuery
浅谈vue-router2路由参数注意的问题
2017/11/08 Javascript
js判断传入时间和当前时间大小实例(超简单)
2018/01/11 Javascript
vue2.0 使用element-ui里的upload组件实现图片预览效果方法
2018/09/04 Javascript
详解React服务端渲染从入门到精通
2019/03/28 Javascript
js中async函数结合promise的小案例浅析
2019/04/14 Javascript
Vue 嵌套路由使用总结(推荐)
2020/01/13 Javascript
[04:41]2014DOTA2国际邀请赛 Liquid顺利突围晋级正赛
2014/07/09 DOTA
python算法学习之桶排序算法实例(分块排序)
2013/12/18 Python
Python cookbook(数据结构与算法)将多个映射合并为单个映射的方法
2018/04/19 Python
Django添加favicon.ico图标的示例代码
2018/08/07 Python
详谈Python 窗体(tkinter)表格数据(Treeview)
2018/10/11 Python
django 外键创建注意事项说明
2020/05/20 Python
如何用python免费看美剧
2020/08/11 Python
如何用 Python 制作 GitHub 消息助手
2021/02/20 Python
美国网上眼镜商城:Zenni Optical
2016/11/20 全球购物
StubHub意大利:购买和出售全球演唱会和体育赛事门票
2017/11/21 全球购物
Zavvi西班牙:电子游戏、极客服装、Blu-ray、Funko Pop等
2019/05/03 全球购物
遗产继承公证书
2014/04/09 职场文书
数据库连接池
2021/04/06 MySQL
解决Mysql中的innoDB幻读问题
2022/04/29 MySQL