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 相关文章推荐
玩转图像函数库―常见图形操作
Sep 03 PHP
使用 MySQL 开始 PHP 会话
Dec 21 PHP
检查url链接是否已经有参数的php代码 添加 ? 或 &amp;
Feb 09 PHP
使用GROUP BY的时候如何统计记录条数 COUNT(*) DISTINCT
Apr 23 PHP
php懒人函数 自动添加数据
Jun 28 PHP
ThinkPHP的RBAC(基于角色权限控制)深入解析
Jun 17 PHP
php常用的安全过滤函数集锦
Oct 09 PHP
thinkphp区间查询、统计查询与SQL直接查询实例分析
Nov 24 PHP
PHP常用的小程序代码段
Nov 14 PHP
php使用curl通过代理获取数据的实现方法
May 16 PHP
CI框架整合smarty步骤详解
May 19 PHP
PHP下载大文件失败并限制下载速度的实例代码
May 10 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
PHP面向对象的进阶学习(抽像类、接口、final、类常量)
2012/05/07 PHP
php中的静态变量的基本用法
2014/03/20 PHP
phpStudy中升级MySQL版本到5.7.17的方法步骤
2017/08/03 PHP
php swoole多进程/多线程用法示例【基于php7nts版】
2019/08/12 PHP
mouse_on_title.js
2006/08/25 Javascript
禁止F5等快捷键的JS代码
2007/03/06 Javascript
Juqery Html(),append()等方法的Bug解决方法
2010/12/13 Javascript
js判断浏览器类型的方法
2013/08/07 Javascript
js实现鼠标划过给div加透明度的方法
2015/05/25 Javascript
iframe中子父类窗口调用JS的方法及注意事项
2015/08/25 Javascript
apply和call方法定义及apply和call方法的区别
2015/11/15 Javascript
javascript中去除数组重复元素的实现方法【实例】
2016/04/12 Javascript
浅谈JavaScript的内置对象和浏览器对象
2016/06/03 Javascript
js点击按钮实现水波纹效果代码(CSS3和Canves)
2016/09/15 Javascript
Bootstrap 手风琴菜单的实现代码
2017/01/20 Javascript
用Webpack构建Vue项目的实践
2017/11/07 Javascript
jQuery实现所有验证通过方可提交的表单验证
2017/11/21 jQuery
ionic3实战教程之随机布局瀑布流的实现方法
2017/12/28 Javascript
基于vue.js组件实现分页效果
2018/12/29 Javascript
Layui弹框中数据表格中可双击选择一条数据的实现
2020/05/06 Javascript
JavaScript面试中常考的字符串操作方法大全(包含ES6)
2020/05/10 Javascript
JavaScript数组排序功能简单实现
2020/05/14 Javascript
Vue自定义render统一项目组弹框功能
2020/06/07 Javascript
浅谈插入排序算法在Python程序中的实现及简单改进
2016/05/04 Python
Django渲染Markdown文章目录的方法示例
2019/01/02 Python
Python控制键盘鼠标pynput的详细用法
2019/01/28 Python
CSS3实现div从下往上滑入滑出效果示例
2020/04/28 HTML / CSS
html5理解head_动力节点Java学院整理
2017/07/13 HTML / CSS
HTML5添加禁止缩放功能
2017/11/03 HTML / CSS
如何使用canvas绘制可移动网格的示例代码
2020/12/14 HTML / CSS
函数指针的定义是什么
2016/08/14 面试题
优秀大学生的自我评价
2014/01/16 职场文书
2015社区精神文明建设工作总结
2015/04/21 职场文书
正规欠条模板
2015/07/03 职场文书
python异常中else的实例用法
2021/06/15 Python
浅谈Node的内存泄露问题
2022/05/06 NodeJs