安装使用php zlib扩展实现页面gzip压缩输出实例

来源:互联网 发布:淘宝活动标题怎么写 编辑:程序博客网 时间:2024/06/02 15:12

 在网站建设中,为提高访问速度,提高页面传送速度是一种可行的方法,通过压缩页面大小后传输可显著提高页面访问速度。一般情况下都是通过服务器端配置apache module_gzip模块(<apache2.0)或mod_deflate模块(>apache2.0)实现支持gzip压缩来完成。PHP本身也提供了使用zlib扩展来对页面进行gzip压缩输出的方法,下面通过实例详细说明php zlib的使用方法。

  zlib与gzip的区别

  zlib是一个通用的压缩开源库,又是一种数据压缩格式,gzip也是一种数据压缩格式,zlib库默认的压缩方法并不是gzip,而是zlib的,因此使用zlib压缩得到gzip格式的数据,通常使用zlib提供的gz***系列函数实现。

  php zlib安装

  在使用zlib之前首先需要安装php zlib扩展,我是在Windows下进行PHP环境搭建,默认已支持zlib的使用,如果你的PHP环境不支持zlib的使用,请下载zlib的DLL扩展文件放置到PHP.INI配置文件中extension_dir设定的目录下并加载zlib扩展并重启服务器即可。

  使用php zlib实现页面gzip压缩输出的原理

  我们知道要想实现php gzip压缩输出,首先需要有需要有输出的内容,其次对内容压缩后输出,而PHP的缓存开启函数ob_start正好可以用来首先存放需要压缩的内容,然后使用php zlib进行gzip算法压缩后输出。

  使用php zlib实现页面gzip压缩输出的方法

  1、创建一个包含如下HTML文件内容的PHP文件,命名为php-zlib.php

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>PHP网站开发教程网-安装使用php zlib扩展实现页面gzip压缩输出实例教程</title></head><body>PHP网站开发教程网www.leapsoul.cn-安装使用php zlib扩展实现页面gzip压缩输出实例教程</body></html>


2、php zlib扩展加载,开启PHP缓存区对页面进行gzip压缩

  在页面头部添加如下代码

<?phpif(extension_loaded("zlib") && strstr($_SERVER["HTTP_ACCEPT_ENCODING"],"gzip")){    ob_start("ob_gzhandler");}else {    echo "php zlib使用失败,请确认是否已加载zlib扩展";    exit();}?>

php zlib使用知识点


2
3
4
5
<?php
if(extension_loaded("zlib")){
    ob_end_flush();
} 
?>

  至此,最简单的使用php zlib扩展实现页面gzip压缩的工作就完成了,下面使用YSlow插件可以看到原本此页面大小为0.4k,经过使用php gzip压缩后大小为0.3k。除了使用ob_gzhandler内置函数进行gzip压缩外,结合php zlib扩展提供的gzencode()函数可自定义压缩函数进行更大比例的压缩,更多php zlib扩展的使用方法下次再介绍。



  1、使用extension_loaded函数判断php zlib扩展是否已加载,并通过$_SERVER["HTTP_ACCEPT_ENCODING"]获取头部信息判断是否支持php gzip压缩。PHP环境变量$_SERVER和系统常量详细说明

  2、通过ob_start(”ob_gzhandler”)告知对缓存区的内容使用ob_gzhandler函数进行压缩以得到gzip压缩格式的数据,如果客户端不支持压缩的页面则此函数返回false。

  3、输出缓存并关闭缓存

  在页面尾部添加如下代码


原创粉丝点击