IIS6.0 开启Gzip方法及PHP Gzip函数分享


Posted in PHP onJune 08, 2014

IIS 的 GZIP 压缩                                                                       

1.首先备份 IIS 的配置文件, 复制 C:\Windows\system32\inetsrv\metabase.xml到另外的备份文件夹中.   C:\Windows\system32\inetsrv\metabase.xml是 IIS 的核心配置文件,该文件的完整性一但被破坏,IIS 将无法正常运行,严重到需要重新安装系统.

2. 在开始菜单中启动 Internet 信息服务(IIS)管理器,右键点击“网站”属性,打开“服务”选项卡,勾选“HTTP 压缩”的两个选项。“临时目录”和“临时目录最大容量”可根据需要自行设置。设置完成后点击确定。

3. 右键点击“网站”下方的 “Web服务扩展”,添加一个新的Web服务扩展,扩展名填写为“HTTP Compression”或其他,都可以。“要求的文件”添加:c:\windows\system32\inetsrv\gzip.dll ,并勾选“设置扩展状态为允许”,完成后点击确定。

4.下面的步骤有些复杂,如果没有确定的把握能理解,最好不要尝试,右键点击“Internet 信息服务的”“本地计算机”属性,勾选“允许直接编辑配置数据库”并确定。

5. 在开始菜单中运行 notepad C:\Windows\system32\inetsrv\metabase.xml ,打开metabase.xml 文件,请在任何改动前再次确认该文件已经备份。

6. 用文本编辑器打开metabase.xml ,用查找功能找到“IIsCompressionScheme”,共有3处,都在一起,分别是deflate、gzip和Parameters,deflate也是一种压缩格式,不过性能上不如gzip。需要修改的是deflate和gzip这两段,参数基本一样,都要修改。

HcDynamicCompressionLevel是用来设置压缩率,默认是0,最高是10。低压缩级别生成稍大一些的压缩文件,但对 CPU 和内存资源的总体影响较小。高压缩级别通常会生成较小的压缩文件,但会占用较多的 CPU 时间和内存。有人说设置成9性价比最高。

HcFileExtensions是用来设置压缩的静态文件扩展名,默认是htm、html、txt,根据网站的自身情况添加扩展名,最基本的是js、css。添加时注意原有的换行格式。

HcScriptFileExtensions是用来设置压缩的动态文件扩展名,默认是asp、dll和exe,根据需要自行添加扩展名,无外乎aspx、php等。可以将这一项的默认删除留空,这样所有的动态响应都以压缩方式发送。另外,还将动态压缩 HcFileExtensions 中所有未指定的静态文件类型,并且因此不将它们放入缓存。同样地,必须将 HcDoDynamicCompression 设置为 true,以进行动态压缩。

PHP Gzip 

/*
* 压缩数据
*/
public static function ob_gzip($content) // $content 就是要压缩的页面内容,或者说饼干原料
{   
    if(    !headers_sent() && // 如果页面头部信息还没有输出
        extension_loaded("zlib") && // 而且zlib扩展已经加载到PHP中
        strstr($_SERVER["HTTP_ACCEPT_ENCODING"],"gzip")) //而且浏览器说它可以接受GZIP的页面 
    {
        $content = gzencode($content." OK",9); //此页已压缩”的注释标签,然后用zlib提供的gzencode()函数执行级别为9的压缩,这个参数值范围是0-9,0表示无压缩,9表示最大压缩,当然压缩程度越高越费CPU。        //然后用header()函数给浏览器发送一些头部信息,告诉浏览器这个页面已经用GZIP压缩过了!
        header("Content-Encoding: gzip"); 
        header("Vary: Accept-Encoding");
        header("Content-Length: ".strlen($content));
    }
        return $content; //返回压缩的内容,或者说把压缩好的饼干送回工作台。
}
PHP 相关文章推荐
PHP 引用是个坏习惯
Mar 12 PHP
PHP网站安装程序制作的原理、步骤、注意事项和示例代码
Aug 01 PHP
php中$_REQUEST、$_POST、$_GET的区别和联系小结
Nov 23 PHP
php学习笔记之面向对象编程
Dec 29 PHP
探讨如何使用SimpleXML函数来加载和解析XML文档
Jun 07 PHP
PHP session_start()问题解疑(详细介绍)
Jul 05 PHP
ThinkPHP模板比较标签用法详解
Jun 30 PHP
php实现的支持imagemagick及gd库两种处理的缩略图生成类
Sep 23 PHP
Ajax提交表单时验证码自动验证 php后端验证码检测
Jul 20 PHP
通过chrome浏览器控制台(Console)进行PHP Debug的方法
Oct 19 PHP
php使用Jpgraph创建柱状图展示年度收支表效果示例
Feb 15 PHP
PHP命名空间namespace及use的简单用法分析
Aug 03 PHP
PHP获取中英混合字符串长度的方法
Jun 07 #PHP
使用PHP破解防盗链图片的一个简单方法
Jun 07 #PHP
PHP防止post重复提交数据的简单例子
Jun 07 #PHP
解决PhpMyAdmin中导入2M以上大文件限制的方法分享
Jun 06 #PHP
php 判断网页是否是utf8编码的方法
Jun 06 #PHP
PHP实现的博客欢迎提示功能(很特别哦)
Jun 05 #PHP
php中数字0和空值的区别分析
Jun 05 #PHP
You might like
php date()日期时间函数详解
2010/05/16 PHP
微信支付的开发流程详解
2016/09/13 PHP
PHP基于mssql扩展远程连接MSSQL的简单实现方法
2016/10/08 PHP
PHP+MySQL实现输入页码跳转到指定页面功能示例
2018/06/01 PHP
实现连缀调用的map方法(prototype)
2009/08/05 Javascript
让FireFox支持innerText的实现代码
2009/12/01 Javascript
IE6中使用position导致页面变形的解决方案(js代码)
2011/01/09 Javascript
JS焦点图切换,上下翻转
2011/05/12 Javascript
JavaScript实现统计文本框Textarea字数增强用户体验
2012/12/21 Javascript
javascript制作的网页侧边弹出框思路及实现代码
2014/05/21 Javascript
node.js中的fs.readSync方法使用说明
2014/12/17 Javascript
JS判断是否360安全浏览器极速内核的方法
2015/01/29 Javascript
JavaScript数据结构和算法之图和图算法
2015/02/11 Javascript
jQuery插件fullPage.js实现全屏滚动效果
2016/12/02 Javascript
Vue AST源码解析第一篇
2017/07/19 Javascript
Vue2.0基于vue-cli+webpack父子组件通信(实例讲解)
2017/09/14 Javascript
小程序异步问题之多个网络请求依次执行并依次收集请求结果
2019/05/05 Javascript
Vue模板语法中数据绑定的实例代码
2019/05/17 Javascript
javascript如何实现create方法
2019/11/04 Javascript
javascript设计模式 ? 代理模式原理与用法实例分析
2020/04/16 Javascript
Python读取图片属性信息的实现方法
2016/09/11 Python
如何用itertools解决无序排列组合的问题
2017/05/18 Python
对python的bytes类型数据split分割切片方法
2018/12/04 Python
Python基于opencv实现的简单画板功能示例
2019/03/04 Python
Pytorch训练过程出现nan的解决方式
2020/01/02 Python
python判断变量是否为int、字符串、列表、元组、字典的方法详解
2020/02/13 Python
python使用Windows的wmic命令监控文件运行状况,如有异常发送邮件报警
2021/01/30 Python
佳能加拿大网上商店:Canon eStore Canada
2018/04/04 全球购物
伦敦一卡通:The London Pass
2018/11/30 全球购物
销售总监工作职责
2013/11/21 职场文书
导游个人求职信范文
2014/03/23 职场文书
学雷锋树新风演讲稿
2014/05/10 职场文书
校长创先争优承诺书
2014/08/30 职场文书
2015秋季小学开学寄语
2015/05/27 职场文书
vue前端工程的搭建
2021/03/31 Vue.js
Python可变集合和不可变集合的构造方法大全
2021/12/06 Python