php设置gzip压缩的两种方法

两种压缩页面输出数据以提高网页访问速度的方法,一种是通过使用php zlib扩展实现页面gzip压缩输出(使用php的内置函数ob_gzhandler进行gzip压缩输出),另外一种方法是是通过修改php.ini配置文件开启php gzip以实现压缩页面信息压缩传输。

phpgzip.jpg

方法一:通过php的内置函数ob_gzhandler进行gzip压缩输出

1、在页面头部添加如下代码:

if(extension_loaded('zlib') && strstr($_SERVER['HTTP_ACCEPT_ENCODING'],'gzip')){
    ob_start('ob_gzhandler');
}else{
    exit('php zlib使用失败,请确认是否已加载zlib扩展');
}

2、在页面尾部添加如下代码:

if(extension_loaded('zlib')){ob_end_flush();}

方法二:通过修改php.ini配置文件实现开启或关闭php gzip以实现压缩页面信息压缩传输

1、找到并打开php.ini配置文件,找到zlib.output_compression = Off,将

zlib.output_compression = Off
;zlib.output_compression_level = -1

修改为:

zlib.output_compression = On
zlib.output_compression_level = 6

php gzip配置知识点:

1、默认php是不开启zlib整站压缩输出的,而是通过对需要压缩输出的页面使用ob_gzhandler函数实现,两者只能二选一,否则会报错。

2、zlib.output_compression默认值为Off,你可以将其设置为On,或者output buffer size(默认为4k)

3、zlib.output_compression_level代表压缩比,默认推荐设置压缩比值为6,可选范围为1-9,-1代表关闭php zlib(gzip)压缩

二、保存php.ini配置文件,并重启apache服务器

三、打开apache 配置文件httpd.conf,配置装载deflate_module。这一步是最关键的开启php gzip压缩输出配置步骤,方法如下,找到

#LoadModule deflate_module modules/mod_deflate.so
这一段并去除开头的#号,然后重启apache即可。

注意:这种办法是相对于php版本大于4.3来说的,php4.3版本以前的需要另外单独安装zlib的。

关键词: php php教程