国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

壓縮PHP生成的html代碼

2019-06-07 10:02:55 7027

網(wǎng)上有很多類似壓縮html代碼的,可是找了許多,代碼的確是可以壓縮,但是就只留一個(gè)代碼?喵喵喵???怎么實(shí)際的用都不說明一下


然后我結(jié)合我自己的代碼修改了一下,首先網(wǎng)上都是提供的一個(gè)函數(shù),那么首先得獲取php生成的代碼呀


然后就可以使用


ob_start();//打開緩沖區(qū)

然后在使用


ob_get_clean();//獲取緩沖區(qū)并且清除

這樣就得到了網(wǎng)站生成的html代碼


然后就可以進(jìn)行代碼壓縮




$content = "html內(nèi)容";

$output = ltrim(rtrim(preg_replace(array("/> *([^ ]*) *[ ]+\\1<'],$content)));

這樣就可以壓縮代碼了!可是這并沒有完,我把這些代碼用到網(wǎng)站里面的時(shí)候,壓縮沒問題,可是到了有代碼顯示(及pre標(biāo)簽)的頁(yè)面,顯示的pre標(biāo)簽里面的代碼全部變成一行了?什么鬼....


然后找了半天最后發(fā)現(xiàn)....是代碼壓縮的鍋..然后pre標(biāo)簽本身是按照編輯器回車來確定換行的,所以html源碼里面也會(huì)有換行,那么咋辦呢


當(dāng)然就是在壓縮html代碼的時(shí)候不要去壓縮pre標(biāo)簽咯


然后我選擇用正則先提取出來pre標(biāo)簽,然后壓縮完成后在進(jìn)行還原代碼


所以最終的代碼


$data = [];//存放pre標(biāo)簽內(nèi)容

$i = 0;//pre標(biāo)簽下標(biāo)

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++;

        //遞歸再次去檢測(cè)一次

        $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;

    }

}

恩,代碼就是這樣的


提交成功!非常感謝您的反饋,我們會(huì)繼續(xù)努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問題: