略微加速

略速 - 互联网笔记

使用ob_gzhandler函数有3种方法让它对php进行压缩

2017-03-17 leiting (2920阅读)

标签 PHP

减小代码在传输中的大小,就能提高页面的传输速度,打开网页也就快了。在一起PHP程序中 像WordPress是默认的gzip压缩功能是通过ob_gzhandler这个函数来实现的,ob_gzhandler是php 4.0.4新增的一个输出缓存函数,并通过gzip压缩后发送到客户端。这个函数需要zlib库支持,一般的虚拟主机都安装有这个库,所以很多blog都使用这个方法来实现对php页面的压缩。


那么对于我们这些没有开启mod_deflate模块的主机来说,就只能采用ob_gzhandler函数来压缩了,它的压缩效果和mod_deflate相比,相差很小,几乎可以忽略(但它只能对php文件进行压缩),下一篇文章将附上我对这几种方式的一个对比测试。

使用ob_gzhandler函数有3种方法让它对php进行压缩:
1、在php.ini中设置output_handler = ob_gzhandler
2、在.htaccess中加入php_value output_handler ob_gzhandler
3、在php文件头加上ob_start('ob_gzhandler');
第一种我们是没法办到,第二种方法不错,可以一劳永逸,一、二种方法效果都一样,就是对所有php后缀文件进行压缩。我这里主要介绍一下第三种方法,
就是试用CSS压缩法 例如对模板下的style.css进行压缩

1、把模板目录下的style.css复制一份出来,命名为style.css.php

接着在style.css.php顶部加入这句:

复制代码
< ?php if(extension_loaded('zlib')) {ob_start('ob_gzhandler');} header("Content-type: text/css"); ?>

在最后加上

复制代码
< ?php if(extension_loaded('zlib')) {ob_end_flush();} ?>

(复制的时候去掉?php前的空格)

2、按照下面的方式修改header.php中的css连接

原来的:

复制代码
<link rel="stylesheet" type="text/css" media="screen" href="/style.css"/>


修改后的:

复制代码
<link rel="stylesheet" type="text/css" media="screen" href="/style.css.php"/>

搞定,现在你的CSS就可以被gzip压缩了。

JS也可以使用同样的方法,只是在xx.js.php头部加入的应该是这样:

复制代码
< ?php if ( extension_loaded('zlib') ) {ob_start('ob_gzhandler');} header("Content-Type: text/java script"); ?>

(复制的时候去掉?php前的空格)

仔细看看K2主题的中的JS,就是修改后缀为php后在顶部加入了ob_gzhandler函数。

所以我们可以用能压缩CSS 和JS的工具来对代码压缩 提高浏览速度~~


北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3