您的位置:首页 > 编程语言 > PHP开发

php zlib扩展实现页面gzip压缩输出

2013-08-06 09:52 866 查看
分享两种压缩页面输出数据以提高网页访问速度的方法,一种是通过使用php zlib扩展实现页面gzip压缩输出(使用php的内置函数ob_gzhandler进行gzip压缩输出),另外一种方法是是通过修改php.ini 配置文件开启php gzip以实现压缩页面信息压缩传输,现在分别详细分享一下这两种方法分别是如何实现的!

(1)通过php的内置函数ob_gzhandler进行gzip压缩输出

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

view
source

print?

1.
if
(
extension_loaded
(
'zlib'
)
&&
strstr
(
$_SERVER
[
'HTTP_ACCEPT_ENCODING'
],
'gzip'
)){


2.
ob_start(
'ob_gzhandler'
);


3.
}
else
{


4.
exit
(
'php
zlib使用失败,请确认是否已加载zlib扩展'
);


5.
}


在页面尾部添加如下代码:
www.it165.net

view
source

print?

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


下面分别是访问不同的域名但信息完全相同的两个网站,结果如下图:





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

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

view
source

print?

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


修改为:

view
source

print?

1.
zlib.output_compression
= On


2.
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的。另外本人使用的是phpnow搭建的php服务器,直接修改php.ini(phpnow的php相关选项配置文件是php- apache2handler.ini)的相关配置并重启apache就行了,不用第二步操作。

下面分别是访问不同的域名但信息完全相同的两个网站,结果如下图:





具体看效果可用火狐浏览器查看,右键点击网页,弹出的菜单中有个查看页面信息选项,弹出的窗口看大小那一项就是了。

转自:http://www.it165.net/pro/html/201209/3807.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: