php开启gzip压缩的三种可靠方法

发布时间:2020-06-29编辑:脚本学堂
本文介绍下,在php中开启gzip压缩的三种方法,有需要的朋友参考下吧。

开启php gzip压缩的三种方法介绍。

方法1,使用apache2中的mod_deflate.so
1,打开apache中的mod_deflate.so
2,php.ini:

复制代码 代码示例:
output_buffering = Off
 

3,php.ini为

复制代码 代码示例:
;output_handler = ob_gzhandler
zlib.output_compression = Off
;zlib.output_compression_level = -1
 

4,apache增加如下:
 

复制代码 代码示例:
<IfModule deflate_module>
AddOutputFilter DEFLATE html php js css
</IfModule>

方法2,使用php.ini中的zlib.output_compression
1,关闭apache中的mod_deflate.so
2,php.ini:

复制代码 代码示例:
output_buffering = On
 

2,php.ini为

复制代码 代码示例:
;output_handler =
zlib.output_compression = Off
zlib.output_compression_level = 6(等级-1至9,默认为6即可)

方法3,用php的内置函数ob_gzhandler(必须保证extension中安装并开启了php_zlib.dll)
1,关闭apache中的mod_deflate.so
2,php.ini为

复制代码 代码示例:
output_handler = ob_gzhandler
zlib.output_compression = On
;zlib.output_compression_level = -1

说明:
在方法三中,如果使用了php.ini中设置output_handler=ob_gzhandler,那么程序中就不需要再加ob_start('ob_gzhandler');
否则会双重压缩,实际上就是报错,一般程序会加以判断。

设置php.ini为默认关闭,程序中增加,但是如果是自己服务器,就设置ini默认开启。
建议使用第1种或者第2种:(特别建议使用第1种)
此时ob_start()可以自定义函数,写法如:ob_start("compress_html");
即可压缩html格式:
 

复制代码 代码示例:
function compress_html($buffer){//去除文件中的注释
$pattern=array("/> *([^ ]*) *</","/<!--[^!]*-->/","'/*[^*]**/'","/[s]+/","/rn/","/n/","/t/");
$replace=array(">1<","",""," ","","","");
return ltrim(rtrim(preg_replace($pattern,$replace,$buffer)));
}
 

如此之后,不仅可以压缩html格式(也可以使用gzip)。

方法1的完整配置方案:
1,打开apache中的mod_deflate.so
2,php.ini为

复制代码 代码示例:
output_buffering = Off
 

3,php.ini为;

复制代码 代码示例:
output_handler = ob_gzhandler
;zlib.output_compression = Off
;zlib.output_compression_level = -1
 

4,apache增加如下:
 

复制代码 代码示例:
<IfModule deflate_module>
AddOutputFilter DEFLATE html php js css
</IfModule>

在需要压缩html格式的php头部使用如下程序:
 

复制代码 代码示例:
ob_start("compress_html");//需要将php.ini中的zlib.output_compression开启
function compress_html($buffer){//去除文件中的注释
$pattern=array("/> *([^ ]*) *</","/<!--[^!]*-->/","'/*[^*]**/'","/[s]+/","/rn/","/n/","/t/");
$replace=array(">1<","",""," ","","","");
return ltrim(rtrim(preg_replace($pattern,$replace,$buffer)));
}
 

如此便开启了php的gzip压缩功能,而且支持浏览器查看源文件时html自动压缩格式化,很好用的哦。
开启gzip压缩吧,特别对于资金不足的小站长们,带宽都是白花花的银子啊。