PHP程序加速探索之压缩输出gzip

程序|压缩

    利用Apache中的mod_gzip模块,我们可以利用gzip的压缩算法来对Apache服务器发布的网页内容进行压缩后再传输到客户端的浏览器。如果是纯文本的内容,效果非常明显,大约可以压缩到原来的30%-40%,使用户的浏览速度大大加快。

  Gzip需要客户端浏览器支持,目前大部份浏览器都支持gzip,如IE,Netscape,Mozilla等,所以这种方法值得一试。我们可以利用PHP中的预定义变量$_SERVER[‘HTTP_ACCEPT_ENCODING’]来判断客户端浏览器是否支持gzip。

  gzip1.php

if(ereg('gzip',$_SERVER['HTTP_ACCEPT_ENCODING'])) {
 //浏览器支持
} else {
 //浏览器不支持,输出其它内容
}
?>
  接下来我们对上面这个PHP程序进行扩展,使用ob_start(ob_gzhandler)来将网页内容压缩,存入缓冲并发送给支持gzip的浏览器,浏览器会自动将压缩后的内容解压,显示。

  gzip2.php

define('MAX',100);

if(ereg('gzip',$_SERVER['HTTP_ACCEPT_ENCODING']))
{
 //浏览器支持gzip,将内容压缩并缓冲输出
 ob_start("ob_gzhandler");
 $output = '';

 for($i=0;$i<=MAX;$i++)
 {
  $output .= "This is line $i ";
 }
 echo "浏览器支持gzip压缩输出";
 echo $output;
}
else
{
 //浏览器不支持,直接输出
 for($i=0;$i<=MAX;$i++)
 {
  $output .= "This is line $i ";
 }

 echo "浏览器不支持gzip压缩输出 ";
 echo $output;
}
?>
  使用gzip压缩生成的网页的HTTP头信息与一般的网页相比中会多出这样的信息:

Content-Encoding: gzip
Content-Length: 270
  如果你想得到更详细的信息,请参看mod_gzip项目主页:

  http://sourceforge.net/projects/mod-gzip/

  类似地,我们也可以利用mod_deflate,压缩率比mod_gzip略低一些。调用zip函数需要耗用服务器内存,所以要慎用,视需求而定。

时间: 2024-12-04 03:28:49

PHP程序加速探索之压缩输出gzip的相关文章

PHP程序加速探索之缓存输出

程序|缓存 内容缓存输出 PEAR cache 接下来我们开始探索更常用的缓存技术,这也是本文的重点部份.首先我们使用PEAR中的cache包.PEAR可以将内容缓存于文件,数据库或者内存中,我们以文件为例. 下面是一个没有使用缓存的PHP小程序: pear_content_cache1.php <?php echo "这是内容.<P>"; echo "当前时间是" . date('M-d-Y H:i:s A', time()) . "&

PHP中zlib扩展实现GZIP压缩输出各种方法总结

GZIP(GNU-ZIP)是一种压缩技术.经过GZIP压缩后页面大小可以变为原来的30%甚至更小.这样用户浏览的时候就会感觉很爽很愉快! 准备工作 1.找不到php_zlib.dll文件? 自php4.3开始zlib压缩就已经内置在php中了,所以至少Windows环境下是不需要安装zlib的. 2.安装搭建php运行环境 由于光通过php.ini配置文件开启gzip配置实现php gzip压缩输出是不行的的,其需要apache的支持,所以建议安装搭建php+apache+mysql运行环境.

php gzip压缩输出的实现方法_php实例

一.gzip介绍          gzip是GNU zip的缩写,它是一个GNU自由软件的文件压缩程序,也经常用来表示gzip这种文件格式.软件的作者是Jean-loup Gailly和Mark Adler.1992年10月31日第一次公开发布,版本号是0.1,目前的稳定版本是1.2.4.         Gzip主要用于Unix系统的文件压缩.我们在Linux中经常会用到后缀为.gz的文件,它们就是GZIP格式的.现今已经成为Internet 上使用非常普遍的一种数据压缩格式,或者说一种文件

PHP应用程序加速探索之简介

程序 (一)简介  本文尝试对PHP程序加速的各个方面进行探索,包括必要性以及从不同角度采取的具体措施.希望有助于读者了解PHP程序加速,并应用于实际. (二)是否需要加速? 这个问题听起来有点愚蠢.在这个时代,很少有人会怀疑时间是最宝贵的财富,尤其是在商业市场上.程序执行越快,用户就节约越多的时间,这样你的程序就可以用更少的时间和服务器资源为用户服务,从而产生更多效益. 我想对于大部份人(包括我自己)来说,很多WEB项目都是在很紧张的时间里完成的,通常没有经过缜密的思考和严格的测试.当开始一个

gizp-delphi7 如何解压java 压缩的 gzip字符串?我这里总提示data error

问题描述 delphi7 如何解压java 压缩的 gzip字符串?我这里总提示data error 5C 如题,哪位大神知道如何解压gzip字符串?初学delphi 求指导. 解决方案 雇佣一个程序员给你写一个解压缩的控件,你负责拖一个到你的窗口上. 解决方案二: 先试一下用winrar如果能正确解压的话,在delphi里用zlib库来解压

ThinkPHP v3.1开发框架新特性:页面压缩输出支持

现在大多数浏览器都已经支持页面的压缩输出,通过压缩输出,页面大小可以减少30%,由于3.0版本没有内置页面压缩输出功能,所以一般来说,需要自己在入口文件中添加: ob_start('ob_gzhanhttp://www.aliyun.com/zixun/aggregation/16504.html">dler'); 但是由于服务器环境的不同,8630.html">有时候这个配置会和php.ini文件中的zlib压缩配置冲突.3.1新版则内置了页面压缩输出功能,不需要再手动添

ThinkPHP3.1新特性之对页面压缩输出的支持_php实例

目前大多数浏览器都已经支持页面的压缩输出,通过压缩输出,页面大小可以减少30%,但是由于3.0及以前的版本都没有内置页面压缩输出功能,所以一般来说,开发人员需要自己在入口文件中添加: ob_start('ob_gzhandler'); 但是由于服务器环境的不同,有时候这个配置会和php.ini文件中的zlib压缩配置冲突.而ThinkPHP3.1版则内置了页面压缩输出的功能,不再需要再手动添加ob_gzhandler代码,增加OUTPUT_ENCODE配置参数,并支持检测zlib.output_

谈PHP如何实现页面GZIP压缩输出

GZIP(GNU-ZIP)是一种压缩技术.经过GZIP压缩后页面大小可以变为原来的30%甚至更小.这样用户浏览的时候就会感觉很爽很愉快!要实现GZIP压缩页面需要浏览器和服务器共同支持,实际上就是服务器压缩,传到浏览器后浏览器解压并解析.浏览器那边不需要我们担心,因为现在绝大多数浏览器都支持解析GZIP过的页面.我们只要把页面在服务器端压缩再输出到浏览器就行了. 有点罗嗦,下面说正事:正如要制作压缩饼干,先要拿到原料,要压缩一个页面,首先要获得要输出的内容.PHP中的ob_start()(ob

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

GZIP(GNU-ZIP)是一种压缩技术.经过GZIP压缩后页面大小可以变为原来的30%甚至更小.这样用户浏览的时候就会感觉很爽很愉快! 要实现GZIP压缩页面需要浏览器和服务器共同支持,实际上就是服务器压缩,传到浏览器后浏览器解压并解析.浏览器那边不需要我们担心,因为现在绝大多数浏览器都支持解析GZIP过的页面.我们只要把页面在服务器端压缩再输出到浏览器就行了. 有点罗嗦,下面说正事: 正如要制作压缩饼干,先要拿到原料,要压缩一个页面,首先要获得要输出的内容.PHP中的ob_start()(o