如何壓縮PHP生成的html代碼

網上有不少相似壓縮html代碼的,但是找了許多,代碼的確是能夠壓縮,可是就只留一個代碼?php

喵喵喵???怎麼實際的用都不說明一下html

而後我結合我本身的代碼修改了一下,首先網上都是提供的一個函數,那麼首先得獲取php生成的代碼呀bash

而後就能夠使用微信

ob_start();//打開緩衝區編輯器

而後在使用函數

ob_get_clean();//獲取緩衝區而且清除網站

這樣就獲得了網站生成的html代碼this

而後就能夠進行代碼壓縮spa

$content = "html內容";code

$output = ltrim(rtrim(preg_replace(array("/>

([^ ]
) *[ ]+\1<'],$content)));

這樣就能夠壓縮代碼了!但是這並無完,我把這些代碼用到網站裏面的時候,壓縮沒問題,但是到了有代碼顯示(及pre標籤)的頁面,顯示的pre標籤裏面的代碼所有變成一行了?什麼鬼....

而後找了半天最後發現....是代碼壓縮的鍋..而後pre標籤自己是按照編輯器回車來肯定換行的,因此html源碼裏面也會有換行,那麼咋辦呢

固然就是在壓縮html代碼的時候不要去壓縮pre標籤咯

而後我選擇用正則先提取出來pre標籤,而後壓縮完成後在進行還原代碼

因此最終的代碼

$data = [];//存放pre標籤內容

$i = 0;//pre標籤下標

htmlFilterPreCompress($data,$content,$i);

function htmlFilterPreCompress($data,$content,$index){

$pre = "/<pre[\s\S]*?/";

if(preg_match($pre,$content,$m)){

    //替換

    $content = str_replace(current($m),"[HTML_COMPRESS]{$index}[/HTML_COMPRESS]",$content);

    $data[$index] = current($m);

    $index++;

    //遞歸再次去檢測一次

    $this->htmlFilterPreCompress($data,$content,$index);

}else{

    $output = ltrim(rtrim(preg_replace(array("/> *([^ ]*) *[ ]+\\1$val){ $output = str_replace("[HTML_COMPRESS]{$key}[/HTML_COMPRESS]",$val,$output); } echo $output; }複製代碼

}

恩,代碼就是這樣的

更多的互聯網資訊關注藍隊雲微信公衆號,享受上雲福利哦

相關文章
相關標籤/搜索