繁体   English   中英

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

[英]How do I directly create and output a .gz file with PHP

我正在制作一个动态站点地图,我希望在输出之前将其压缩。 我怎么做? 我应该添加什么标题?

您可以通过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 

更多信息在这里

本页概述了两种发送压缩输出的方法。

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

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

ob_gzhandler将负责设置正确的标头。 万一客户端不支持gzip编码,它也不会gzip数据。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM