本文实例讲述了PHP使用zlib扩展实现GZIP压缩输出的方法。分享给大家供大家参考,具体如下:
一般情况下我们出现大量数据传输理希望减少服务器的带宽压力,会采取一种方式来压缩文件传输,PHP中用zlib也可以实现gzip压缩输出,下面我们来看GZIP压缩输出各种方法总结.
GZIP(GNU-ZIP)是一种压缩技术。经过GZIP压缩后页面大小可以变为原来的30%甚至更小。这样用户浏览的时候就会感觉很爽很愉快!
准备工作
自PHP4.3开始zlib压缩就已经内置在PHP中了,所以至少Windows环境下是不需要安装zlib的。
2、安装搭建PHP运行环境
由于光通过PHP.ini配置文件开启gzip配置实现PHP gzip压缩输出是不行的,其需要apache的支持,所以建议安装搭建PHP+apache+MysqL运行环境。
PHP gzip配置步骤
修改为
实例1
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;">
实例2
文件的例子:
解压缩swf文件:
实例3
PHP gzip配置知识点:
1、默认PHP是不开启zlib整站压缩输出的,而是通过对需要压缩输出的页面使用ob_gzhandler
函数实现,两者只能二选一,否则会报错。
2、
3、关闭PHP zlib(gzip)压缩
三、打开apache 配置文件httpd.conf,配置装载
这一步是最关键的开启PHP gzip压缩输出配置步骤,很多网友会说我已经开启了PHP.ini配置文件中的PHP gzip配置怎么还是没有实现PHP gzip压缩,就是因为没有让apache装载方法如下,将
去除开头的#号,并重启apache即可。
更多关于PHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》、《》及《》