####PHP壓縮html網頁代碼(清除空格,換行符,制表符,注釋標記)
今天無意中看到谷歌的網頁輸出的 html 代碼竟然都被壓縮成了一段代碼了。感覺挺有趣的,理論上不知道這樣是否能算的上是一種優化,但感覺這樣做的話應該一定程度上減少了頁面網絡傳輸的體積。下面本人也分享一種利用 php 清除html代碼中的空格,換行符,制表符,注釋標記等以達到壓縮輸出 html 的目的。其實如果使用的是smarty模板開發的話,可以直接在模板中使用strip標簽即可達到相同的目的。
~~~
/**
*壓縮html:清除換行符,清除制表符,去掉注釋標記
*@param $string
*@return 壓縮后的$string
**/
function compress_html($string){
$string=str_replace("\r\n",'',$string);//清除換行符
$string=str_replace("\n",'',$string);//清除換行符
$string=str_replace("\t",'',$string);//清除制表符
$pattern=array(
"/> *([^ ]*) *</",//去掉注釋標記
"/[\s]+/",
"/<!--[^!]*-->/",
"/\" /",
"/ \"/",
"'/\*[^*]*\*/'"
);
$replace=array(
">\\1<",
" ",
"",
"\"",
"\"",
""
);
return preg_replace($pattern,$replace,$string);
}
~~~
當我們在寫采集程序時,往往也需要對采集回來的內容進行一定的處理,比如刪除HTML代碼、去掉多余的空格、刪除回車換行符等等。下面就寫一個更霸氣的方法來實現這個想法吧。思路如下:
~~~
function cleanHtml($str){
$str=trim($str);
$str=strip_tags($str,"");
$str=ereg_replace("\t","",$str);
$str=ereg_replace("\r\n","",$str);
$str=ereg_replace("\r","",$str);
$str=ereg_replace("\n","",$str);
$str=ereg_replace(" "," ",$str);
return trim($str);
}
~~~