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使之能同时支持GIF和JPEG
Oct 09 PHP
一个用于网络的工具函数库
Oct 09 PHP
让你的网站首页自动选择语言转跳
Dec 06 PHP
C# Assembly类访问程序集信息
Jun 13 PHP
php 短链接算法收集与分析
Dec 30 PHP
php上传图片存入数据库示例分享
Mar 11 PHP
php中的常用魔术方法汇总
Feb 14 PHP
简单解决微信文章图片防盗链问题
Dec 17 PHP
Yii2实现中国省市区三级联动实例
Feb 08 PHP
yii2 resetful 授权验证详解
May 18 PHP
Laravel框架实现的rbac权限管理操作示例
Jan 16 PHP
PHP实现的抓取小说网站内容功能示例
Jun 27 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
Terran兵种介绍
2020/03/14 星际争霸
php+mysqli事务控制实现银行转账实例
2015/01/29 PHP
php单一接口的实现方法
2015/06/20 PHP
PHP中单例模式与工厂模式详解
2017/02/17 PHP
thinkphp5 加载静态资源路径与常量的方法
2017/12/24 PHP
php实现微信分享朋友链接功能
2019/02/18 PHP
JS实多级联动下拉菜单类,简单实现省市区联动菜单!
2007/05/03 Javascript
javascript cookie解码函数(兼容ff)
2008/03/17 Javascript
javascript 类方法定义还是有点区别
2009/04/15 Javascript
JavaScript生成随机字符串的方法
2015/03/19 Javascript
JS制作类似选项卡切换的年历
2016/12/03 Javascript
你真的了解BOM中的history对象吗
2017/02/13 Javascript
jQuery简介_动力节点Java学院整理
2017/07/04 jQuery
js下拉菜单生成器dropMenu使用方法详解
2017/08/01 Javascript
JS去掉字符串末尾的标点符号及删除最后一个字符的方法
2017/10/24 Javascript
微信小程序实现传参数的几种方法示例
2018/01/10 Javascript
vue+element搭建后台小总结 el-dropdown下拉功能
2020/04/10 Javascript
vue 获取及修改store.js里的公共变量实例
2019/11/06 Javascript
使用React代码动态生成栅格布局的方法
2020/05/24 Javascript
jquery轮播图插件使用方法详解
2020/07/31 jQuery
Python 开发Activex组件方法
2009/11/08 Python
python实现字符串连接的三种方法及其效率、适用场景详解
2017/01/13 Python
Python如何通过subprocess调用adb命令详解
2017/08/27 Python
Python实现的在特定目录下导入模块功能分析
2019/02/11 Python
Python实现bilibili时间长度查询的示例代码
2020/01/14 Python
Python多线程Threading、子线程与守护线程实例详解
2020/03/24 Python
Python3 webservice接口测试代码详解
2020/06/23 Python
HTML5中的Article和Section元素认识及使用
2013/03/22 HTML / CSS
总经理助理的八要求
2013/11/12 职场文书
会计应聘求职信范文
2013/12/17 职场文书
人民调解员先进事迹材料
2014/05/08 职场文书
监察局领导班子四风问题整改措施思想汇报
2014/10/05 职场文书
2014年精神文明建设工作总结
2014/11/19 职场文书
2014年人事行政工作总结
2014/12/03 职场文书
办公室年度工作总结2015
2015/05/21 职场文书
详细聊聊浏览器是如何看闭包的
2021/11/11 Javascript