####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);
}
~~~