如何使用PHP直接创建和输出.gz文件

时间:2011-10-13 09:00:29

标签: php

我正在创建一个动态的站点地图,我希望在输出之前进行gziped。我怎么做?我应该添加什么标题?

2 个答案:

答案 0 :(得分:0)

您可以通过Apache配置来完成。在根目录中创建一个名为.htaccess的文件,并在其中加入以下行:

<Location />
SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI \
\.(?:gif|jpe?g|png)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary
</Location> 

或者只是这一行:

AddOutputFilterByType DEFLATE text/html text/plain text/xml 

更多信息是here

答案 1 :(得分:0)

this page上概述了两种发送gzip压缩输出的方法。

最简单的解决方案是使用带有ob_gzhandler的输出缓冲:

<?php
    ob_start("ob_gzhandler");
?>

ob_gzhandler将负责设置正确的标头。如果客户端不支持gzip编码,它也不会对数据进行gzip。

但是,ob_gzhandler要求启用Zlib库。有关详细信息,请参阅ob_gzhandler的文档。