如何提高PHP速度第2/3页

 更新时间:2007年02月22日 00:00:00   作者:  

来自Remote Communications的免费Apache模块mod_gzip就具有为支持这类内容编码的浏览器压缩静态Web内容的能力。对于绝大多数静态Web内容,mod_gzip都非常有效。mod_gzip可以方便地编译到Apache里面,也可以作为DSO使用。据Remote communications公司说,mod_gzip也能够压缩来自mod_php、mod_perl等的动态内容。我试了一次又一次,但看来还是不行。我看了许多关于mod_gzip的论坛和文章,看来到了mod_gzip的下一个版本(可能是1.3.14.6f)这个问题有望得到解决。在此之前,我们可以在网站的静态部分使用mod_gzip。 

然而有时我们确实需要压缩动态内容,所以必须找找其他办法。有一种办法是使用class.gzip_encode.php,这是一个可以用来压缩页面内容的PHP类,具体方法是在PHP脚本的开头和末尾调用该类的某些函数。如果要在网站级实现这个方案,可以从php.ini文件的auto_prepend以及auto_append指令调用这些函数。这种方法虽然有效,但它无疑为高负载的网站带来了更多的开销。关于如何使用这个类的详细说明,请参见它的源代码。它的源代码说明相当完善,作者告诉了你所有你必须知道的事情。 

PHP 4.0.4有一个新的输出缓存句柄ob_gzhandler,它与前面的类相似,但用法不同。使用ob_gzhandler时要在php.ini中加入的内容如下: 

output_handler = ob_gzhandler ;


这行代码使得PHP激活输出缓存,并压缩它发送出去的所有内容。如果由于某种原因你不想在php.ini中加上这行代码,你还可以通过PHP源文件所在目录的.htaccess文件改变默认的服务器行为(不压缩),语法如下: 

php_value output_handler ob_gzhandler


或者是从PHP代码调用,如下所示: 

ob_start("ob_gzhandler");


采用输出缓存句柄的方法确实非常有效,而且不会给服务器带来什么特殊的负荷。但必须注意的是,Netscape Communicator对压缩图形的支持不佳,因此除非你能够保证所有用户都使用IE浏览器,否则你应该禁止压缩JPEG和GIF图形。一般地,对于所有其他文件,这种压缩都有效,但建议你针对各种浏览器都分别进行测试,特别是当你使用了特殊的插件或者数据查看器时这一点尤其重要。

相关文章

  • PHP6 中可能会出现的新特性预览

    PHP6 中可能会出现的新特性预览

    PHP核心团队开发者Pierre Joye近日在官网上贴出了PHP6中可能会出现的新特性,之所以说是“可能会出现”,是因为目前PHP6项目还处于阶段,这些特性还只是一个想法,还需要讨论,随时都有可能变更
    2014-04-04
  • php foreach、while性能比较

    php foreach、while性能比较

    foreach是对数组副本进行操作(通过拷贝数组),而while则通过移动数组内部指标进行操作,一般逻辑下认为,while应该比foreach快.
    2009-10-10
  • php 使用expat方式解析xml文件操作示例

    php 使用expat方式解析xml文件操作示例

    这篇文章主要介绍了php 使用expat方式解析xml文件操作,结合实例形式分析了PHP使用expat方式解析xml文件具体步骤与相关操作技巧,需要的朋友可以参考下
    2019-11-11
  • php中用数组的方法设置cookies

    php中用数组的方法设置cookies

    php中用数组的方法设置cookies,需要的朋友可以参考下。
    2011-04-04
  • Admin generator, filters and I18n

    Admin generator, filters and I18n

    You need to modify your EntityFormFilter (where Entity is your object class - Article, Book, etc.).
    2011-10-10
  • 随时给自己贴的图片加文字的php水印

    随时给自己贴的图片加文字的php水印

    随时给自己贴的图片加文字的php水印...
    2007-03-03
  • PHP 读取和修改大文件的某行内容的代码

    PHP 读取和修改大文件的某行内容的代码

    最近碰到一个比较有趣的问题,就是修改某个文件的某一行字符,不过文件太大,file()直接读取是不可能的,我使用fgets来跳转到指定行,并用fwrite修改某个字符串。
    2009-10-10
  • 浅析php中抽象类和接口的概念以及区别

    浅析php中抽象类和接口的概念以及区别

    本篇文章是对php中抽象类和接口的概念以及区别进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • php中CI操作多个数据库的代码

    php中CI操作多个数据库的代码

    最近有个需求,做一个独立后台出来,这个独立后台有单独的库,单独的url,单独…。但是,这里边只是一些基础数据,而使用者需要通过该库查看另一个库里的统计数据。这就带来一个问题:我需要在控制器里边可以同时操作两个数据库,而且这两个库毫不相干
    2012-07-07
  • PHP 登录记住密码实现思路

    PHP 登录记住密码实现思路

    在登录的时候记住用户输入的密码在某些情况下是很有必要的,下面是一个小例子,感兴趣的朋友可以参考下哈,希望对你有所帮助
    2013-05-05

最新评论