前端之家收集整理的这篇文章主要介绍了
PHP使用zlib扩展实现GZIP压缩输出的方法详解,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
本文实例讲述了PHP使用zlib扩展实现GZIP压缩输出的方法。分享给大家供大家参考,具体如下:
一般情况下我们出现大量数据传输理希望减少服务器的带宽压力,会采取一种方式来压缩文件传输,PHP中用zlib也可以实现gzip压缩输出,下面我们来看GZIP压缩输出各种方法总结.
GZIP(GNU-ZIP)是一种压缩技术。经过GZIP压缩后页面大小可以变为原来的30%甚至更小。这样用户浏览的时候就会感觉很爽很愉快!
准备工作
1、找不到PHP_zlib.dll文件?
自PHP4.3开始zlib压缩就已经内置在PHP中了,所以至少Windows环境下是不需要安装zlib的。
2、安装搭建PHP运行环境
由于光通过PHP.ini配置文件开启gzip配置实现PHP gzip压缩输出是不行的,其需要apache的支持,所以建议安装搭建PHP+apache+MysqL运行环境。
PHP gzip配置步骤
一、打开PHP.ini配置文件,找到
修改为
实例1
PHP使用zlib扩展实现页面GZIP压缩输出
代码
PHP;">
function ob_gzip($content) // $content 就是要压缩的
页面内容
{
if(!headers_sent() && extension_loaded("zlib") && strstr($_SERVER["HTTP_ACCEPT_ENCODING"],"gzip"))//判断
页面头部信息是否
输出,
PHP中zlib扩 展是否已经加载,浏览器是否
支持GZIP技术
{
$content = gzencode($content." n//此页已压缩",9); //为准备压缩的
内容贴上"//此页已压缩"的注释
标签,然后用zlib提供的gzencode()
函数执行级别为9的压缩,这个参数值范围是0-9,0 表示无压缩,9表示最大压缩,当然压缩程度越高越费
cpu。
//用header()
函数给浏览器发送一些头部信息,告诉浏览器这个
页面已经用GZIP压缩过了!
header("Content-Encoding: gzip");
header("Vary: Accept-Encoding");
header("Content-Length: ".strlen($content));
}
return $content; //返回压缩的
内容
函数写好后,就用ob_start调用它,于是原来的ob_start()
变成
函数名。这样当
内容进入缓冲区后
PHP就会
调用ob_gzip
函数把它压缩了。
最后结束缓冲区
输出
内容。当然,不用这个
函数也行,因为程序执行到最后会
自动将缓冲区
内容输出。
最终完整的实例
PHP;">
实例2
zlib压缩和解压缩swf文件的代码
文件的例子:
解压缩swf文件:
实例3
开启PHP zlib(gzip)压缩输出
PHP gzip配置知识点:
1、默认PHP是不开启zlib整站压缩输出的,而是通过对需要压缩输出的页面使用ob_gzhandler
函数实现,两者只能二选一,否则会报错。
2、
3、关闭PHP zlib(gzip)压缩
二、保存PHP.ini配置文件,并重启apache服务器
三、打开apache 配置文件httpd.conf,配置装载
这一步是最关键的开启PHP gzip压缩输出配置步骤,很多网友会说我已经开启了PHP.ini配置文件中的PHP gzip配置怎么还是没有实现PHP gzip压缩,就是因为没有让apache装载方法如下,将
去除开头的#号,并重启apache即可。
更多关于PHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》、《》及《》
希望本文所述对大家PHP程序设计有所帮助。