站长朋友们都知道,网页越小,打开的速度就是越快,对于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("/> *([^ ]*) *</","//","'/*[^*]**/'","/rn/","/n/","/t/",'/>[ ]+</'),
array(">1<",'','','','','','><'),$string)));
}
上面的这个正则表达式,很强大的哦,经过我本人亲自测试可使用。
通过以上方法,你就可以将你的html代码压缩然后输出给客户端了。不信你可以查看源代码,就是一行,网页瞬间压缩很小。
拓展:
这里有两种压缩html代码的方式。
第一种:只压缩html代码,不压缩js,jq中的空行,换行等。
$str = preg_replace("~>s+<~", "><",preg_replace("~>s+rn~", ">", $str));
压缩之后的结果显示,除了js,jq的代码除外,其他的代码都是一行。
第二种:只要是页内的代码全部的压缩,包括js、jq。
$str = ltrim(rtrim(preg_replace(array("/> *([^ ]*) *</","//","'/*[^*]**/'","/rn/","/n/","/t/",'/>[ ]+</'),array(">1<",'','','','','','><'),$str)));
压缩之后的结果就是一行,不管js、jq。
这里要是页面中的js、jq都已经抽出去之后,可以使用第二种方式,这样压缩的更加的彻底。要是页面中的js、jq没有抽取干净的话,我建议还是采用第一种方式只压缩网页中除了js、jq以外的html元素。
本文链接:http://78moban.cn/post/14234.html
版权声明:站内所有文章皆来自网络转载,只供模板演示使用,并无任何其它意义!