php使用正則表達(dá)式去掉html中的注釋方法
最近在項(xiàng)目中在需要輸出瀏覽器中的源文件需要去掉html中的注釋,在網(wǎng)上看了很多的方案,不過(guò)很多的答案都是一樣的,并不能解決我的問(wèn)題,于是就自己寫(xiě)正則表達(dá)式,也對(duì)正則有了更加深刻的理解。
首先比較基礎(chǔ)的是:
$a = '<!--ceshi-->ceshi'; $a = preg_replace('#<!--.*-->#' , '' , $a); var_dump($a);
上面的代碼會(huì)輸出ceshi。
但是如果是下面的字符串的話,就不能達(dá)到我們希望的效果了
$a = '<!--ceshi-->ceshi<!--ceshi-->'; $a = preg_replace('#<!--.*-->#' , '' , $a); var_dump($a);
于是我們就把匹配規(guī)則改成如下的格式
preg_replace('#<!--.*?-->#' , '' , $a);
但是在html中如果有<!--[if lt IE 9]>ceshi<![endif]-->這樣的代碼的話是不能去掉的,所以我們需要改進(jìn)匹配規(guī)則,改成以下的格式
preg_replace('#<!--[^\!\[]*?-->#' , '' , $a);
又接著如果html中有<script><!--ceshi//--></script>的代碼,我們又需要改一下我們的匹配規(guī)則了,改成了以下格式
preg_replace('#<!--[^\!\[]*?(?<!\/\/)-->#' , '' , $a);
這樣的話我基本上就去掉了我需要去掉的html的注釋了!
以上就是小編為大家?guī)?lái)的php使用正則表達(dá)式去掉html中的注釋方法全部?jī)?nèi)容了,希望大家多多支持腳本之家~
相關(guān)文章
thinkPHP5.0框架引入Traits功能實(shí)例分析
這篇文章主要介紹了thinkPHP5.0框架引入Traits功能,結(jié)合實(shí)例形式分析了Traits的概念、功能及thinkPHP5.0中Traits功能的使用方法,需要的朋友可以參考下2017-03-03重新認(rèn)識(shí)php array_merge函數(shù)
PHP中合并數(shù)組分成兩種情況:1.如果這兩個(gè)數(shù)組中有相同的字符串鍵名 2.如果這兩個(gè)數(shù)組中有相同的數(shù)值鍵名2014-08-08php、java、android、ios通用的3des方法(推薦)
下面小編就為大家?guī)?lái)一篇php、java、android、ios通用的3des方法(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09thinkphp3.2框架中where條件查詢用法總結(jié)
這篇文章主要介紹了thinkphp3.2框架中where條件查詢用法,總結(jié)分析了thinkphp3.2中where條件查詢中常用的各種查詢條件、以及各種復(fù)合查詢實(shí)現(xiàn)方法,需要的朋友可以參考下2019-08-08Codeigniter+PHPExcel實(shí)現(xiàn)導(dǎo)出數(shù)據(jù)到Excel文件
PHPExcel是用來(lái)操作OfficeExcel文檔的一個(gè)PHP類庫(kù),Codeigniter是一個(gè)功能強(qiáng)大的PHP框架。二者結(jié)合就能起到非常棒的效果,需要的朋友可以參考下2014-06-06