使用zlib在PHP中实现压缩输出

今天遇到一个这样的问题,每源数据大约 10k左右,需要原封不动的输出到浏览器中。

数据全部是文本文件,所以就想到了压缩数据 保存在数据库中,需要的时候直接输出到浏览器就好了。

按照测试的结果,可以达到 75%的压缩比,这个很可观了。

按照 http://www.blueidea.com/tech/program/2008/5533.asp 这个文档的提示

只是象征性地测试了一下,代码如下:

$file="file.xml";

$compressData = gzencode($file);

$length = strlen($compressData);

header("Content-Type: application/xml; charset=utf8");

header("Content-Encoding: gzip");

header("Content-Length: $length");

echo $compressData;

其中 file.xml是原先 10k多的数据。

当然,这么简单的代码投入生产是远远不够的, 只是作个测试的话,足够了。

This article is posted by on , link is .

Leave a reply

  • says:
    Webserver 的压缩,比如说 apache 的 mod_deflate,可以设置对于 Content-Type为 text/plain 或者 text/html 的文件 压缩,这个压缩是实时的,也就是每次返回给浏览器都需要压缩一下子, 而我所说的这种情况是,对于一些数据,比如一个xml文件,这个数据永远都不会改变,这个时候,我们可以直接将这个xml文件压缩后,保存到数据库中,访问的时候,直接将这个数据返回给浏览器,而不是返回给浏览器的时候才压缩。
  • says:
    达到同样效果哪个更好呢?
  • says:
    用法不一样啊,呵呵。
  • says:
    用Webserver的压缩是不是更好一些?