转apache/php 开启 gzip压缩

Posted YunGaZeon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了转apache/php 开启 gzip压缩相关的知识,希望对你有一定的参考价值。

1、php方式开启

原理:

header("Content-Encoding: gzip");
echo gzencode(\'songjiankang\');

 示例1:

复制代码
function ob_gzip ($content) // $content 就是要压缩的页面内容,或者说饼干原料
{
    if (! headers_sent() &&     // 如果页面头部信息还没有输出
    extension_loaded("zlib") &&     // 而且zlib扩展已经加载到php中
    strstr($_SERVER["HTTP_ACCEPT_ENCODING"], "gzip"))     // 而且浏览器说它可以接受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_gzip\');
复制代码

 

 示例2:

#ob_gzhandler 为php内置函数,具体参考手册
ob_start(\'ob_gzhandler\');

 

2、apache的方式开启:

a.开启模块:

LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so

 

b.httpd.conf中增加

<ifmodule deflate_module>
  DeflateCompressionLevel 9
  AddOutputFilterByType DEFLATE text/html text/plain text/xml application/json application/xml
  AddOutputFilter DEFLATE js css
  AddOutputFilter INCLUDES .shtml .htm .xml .php .html
</ifmodule>

c.重启服务器

 

原文:http://www.cnblogs.com/siqi/p/4003421.html

以上是关于转apache/php 开启 gzip压缩的主要内容,如果未能解决你的问题,请参考以下文章

IIS开启Gzip压缩

Wordpress开启GZIP功能的多个方法

如何启用网页GZIP压缩

php curl采集,服务器gzip压缩返回数据怎么办

最快最简单的部署本地Apache+PHP+MySQL神器USBWebserver(转)

php curl采集,服务器gzip压缩返回数据怎么办