站长朋友们都知道,网页越小,打开的速度就是越快,对于SEO有帮助。所以,我们往往会问用php如何压缩html代码?怎么让代码变成一行,压缩输出。常常看到别人网页上的html代码都是压缩之后输出的,那么我们如何操作呢?
因为本人使用的是php语言,所以这里告诉php的压缩函数,下方说明方法:
 
第一步,你需要对php的设置如下:
php.ini:

output_buffering = Off

output_handler = ob_gzhandler

zlib.output_compression = Off

zlib.output_compression_level = -1
 
第二步,你需要在apache下增加如下设置:
 
AddOutputFilter DEFLATE html php js css
 
这样就可以对html php js css进行gzip压缩了。
 
第三步,你需要使用如下php压缩html并输出到客户端的函数:
 
function compress_html($string) {

  return ltrim(rtrim(preg_replace(array("/> *([^ ]*) *</","//","'/\*[^*]*\*/'","/\r\n/","/\n/","/\t/",'/>[ ]+</'),
         array(">\\1<",'','','','','','><'),$string)));

}
 
上面的这个正则表达式,很强大的哦,经过我本人亲自测试可使用。
通过以上方法,你就可以将你的html代码压缩然后输出给客户端了。不信你可以查看源代码,就是一行,网页瞬间压缩很小。
 

拓展:

这里有两种压缩html代码的方式。

第一种:只压缩html代码,不压缩js,jq中的空行,换行等。

$str = preg_replace("~>\s+<~", "><",preg_replace("~>\s+\r\n~", ">", $str));

压缩之后的结果显示,除了js,jq的代码除外,其他的代码都是一行。

第二种:只要是页内的代码全部的压缩,包括js、jq。

$str = ltrim(rtrim(preg_replace(array("/> *([^ ]*) *</","//","'/\*[^*]*\*/'","/\r\n/","/\n/","/\t/",'/>[ ]+</'),array(">\\1<",'','','','','','><'),$str)));

压缩之后的结果就是一行,不管js、jq。

这里要是页面中的js、jq都已经抽出去之后,可以使用第二种方式,这样压缩的更加的彻底。要是页面中的js、jq没有抽取干净的话,我建议还是采用第一种方式只压缩网页中除了js、jq以外的html元素。
相关评论(0)
您是不是忘了说点什么?

友情提示:垃圾评论一律封号...

还没有评论,快来抢沙发吧!