PHP使用zlib扩展实现页面GZIP压缩输出

看代码,有注释讲的很明白。

PHP代码
  1. <?php   
  2. ob_start('ob_gzip'); //没错,就是给ob_start()加一个参数,参数名就是“压缩机”的函数名。这样当内容进入缓冲区后PHP就会调用ob_gzip函数把它压缩了。   
  3.   
  4. //准备一些待压缩的内容   
  5. for($i=0; $i<100; $i++)   
  6. {   
  7.     echo('这里是压缩饼干的原料,这里是压缩饼干的原料,原料');   
  8. }   
  9.   
  10. ob_end_flush(); //结束缓冲区,输出内容。当然,不用这个函数也行,因为程序执行到最后会自动将缓冲区内容输出。   
  11.   
  12. //下面就是压缩机函数   
  13. function ob_gzip($content// $content 就是要压缩的页面内容   
  14. {       
  15.     if(!headers_sent() && // 如果页面头部信息还没有输出   
  16.         extension_loaded("zlib") && // 而且zlib扩展已经加载到PHP中   
  17.         strstr($_SERVER["HTTP_ACCEPT_ENCODING"],"gzip")) //而且浏览器说它可以接受GZIP的页面    
  18.     {   
  19.         $content = gzencode($content,9); //用zlib提供的gzencode()函数执行级别为9的压缩,这个参数值范围是0-9,0表示无压缩,9表示最大压缩,当然压缩程度越高越费CPU。   
  20.            
  21.         //然后用header()函数给浏览器发送一些头部信息,告诉浏览器这个页面已经用GZIP压缩过了!   
  22.         header("Content-Encoding: gzip");    
  23.         header("Vary: Accept-Encoding");   
  24.         header("Content-Length: ".strlen($content));   
  25.     }   
  26.     return $content//返回压缩的内容,或者说把压缩好的饼干送回工作台。   
  27. }   
  28. ?>  

Tags: gzip

« 上一篇 | 下一篇 »

只显示10条记录相关文章

通过gzip来压缩js文件 (浏览: 895, 评论: 0)
加快php程序的输出 (浏览: 1134, 评论: 0)
PHP的压缩输出gzip (浏览: 1991, 评论: 0)

Trackbacks

点击获得Trackback地址,Encode: UTF-8 点击获得Trackback地址,Encode: GB2312 or GBK 点击获得Trackback地址,Encode: BIG5

发表评论

评论内容 (必填):