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 相关文章推荐
phpmyadmin的#1251问题
Nov 25 PHP
获取远程文件大小的php函数
Jan 11 PHP
php中获取关键词及所属来源搜索引擎名称的代码
Feb 15 PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
Oct 15 PHP
Codeigniter的一些优秀特性总结
Jan 21 PHP
php设计模式之单例模式实例分析
Feb 25 PHP
PHP中如何防止外部恶意提交调用ajax接口
Apr 11 PHP
php下载文件,添加响应头的简单实例
Sep 22 PHP
php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)
Nov 16 PHP
如何通过View::first使用Laravel Blade的动态模板详解
Sep 21 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
Dec 26 PHP
Laravel向公共模板赋值方法总结
Jun 25 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 mysqli扩展类是否开启
2016/12/24 PHP
从ThinkPHP3.2.3过渡到ThinkPHP5.0学习笔记图文详解
2019/04/03 PHP
php面试实现反射注入的详细方法
2019/09/30 PHP
解决IE下select标签innerHTML插入option的BUG(兼容IE,FF,Opera,Chrome,Safari)
2010/05/13 Javascript
IE6下出现JavaScript未结束的字符串常量错误的解决方法
2010/11/21 Javascript
jquery利用event.which方法获取键盘输入值的代码
2011/10/09 Javascript
js中的异常处理try...catch使用介绍
2013/09/21 Javascript
如何调试异步加载页面里包含的js文件
2014/10/30 Javascript
jQuery实现加入购物车飞入动画效果
2015/03/14 Javascript
jQuery中 prop() attr()使用详解
2015/05/19 Javascript
jQuery height()、innerHeight()、outerHeight()函数的区别详解
2016/05/23 Javascript
JS提示:Uncaught SyntaxError: Unexpected token ILLEGAL错误的解决方法
2016/08/19 Javascript
js中创建对象的几种方式
2017/02/05 Javascript
JavaScript中值类型和引用类型的区别
2017/02/23 Javascript
Vue.js 插件开发详解
2017/03/29 Javascript
深入理解vue-router之keep-alive
2017/08/31 Javascript
vue.js vue-router如何实现无效路由(404)的友好提示
2017/12/20 Javascript
js中split()方法得到的数组长度问题
2018/07/19 Javascript
vue-cli2打包前和打包后的css前缀不一致的问题解决
2018/08/24 Javascript
微信小程序在线客服自动回复功能(基于node)
2019/07/03 Javascript
JavaScript cookie原理及使用实例
2020/05/08 Javascript
vuex页面刷新导致数据丢失的解决方案
2020/12/10 Vue.js
JS实现简易日历效果
2021/01/25 Javascript
Python优化技巧之利用ctypes提高执行速度
2016/09/11 Python
浅谈Python2、Python3相对路径、绝对路径导入方法
2018/06/22 Python
python3.6 tkinter实现屏保小程序
2019/07/30 Python
Django中的用户身份验证示例详解
2019/08/07 Python
python 使用cx-freeze打包程序的实现
2020/03/14 Python
Python手动或自动协程操作方法解析
2020/06/22 Python
CSS3实现点击放大的动画实例代码
2017/02/27 HTML / CSS
世界上最大的专业美容用品零售商:Sally Beauty
2017/07/02 全球购物
Paper Cape官网:美国婴儿和儿童服装品牌
2019/11/02 全球购物
SQL语言面试题
2013/08/27 面试题
小升初自荐信范文
2015/03/05 职场文书
2015年医院保卫科工作总结
2015/07/23 职场文书
JUnit5常用注解的使用
2021/07/02 Java/Android