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 相关文章推荐
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
Mar 29 PHP
mysql 全文搜索 技巧
Apr 27 PHP
一些被忽视的PHP函数(简单整理)
Apr 30 PHP
PHP字符编码问题之GB2312 VS UTF-8解决方法
Jun 23 PHP
php数组函数序列之array_slice() - 在数组中根据条件取出一段值,并返回
Nov 07 PHP
C/S和B/S两种架构区别与优缺点分析
Oct 23 PHP
php获取本机真实IP地址实例代码
Mar 31 PHP
php使用文本统计访问量的方法
May 12 PHP
php实现批量上传数据到数据库(.csv格式)的案例
Jun 18 PHP
详解PHP序列化和反序列化原理
Jan 15 PHP
php输出反斜杠的实例方法
Sep 19 PHP
php框架CI(codeigniter)自动加载与自主创建对象操作实例分析
Jun 06 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+Mysql+jQuery实现动态展示信息
2011/10/08 PHP
强烈声明: 不要使用(include/require)_once
2013/06/06 PHP
微信公众号开发之语音消息识别php代码
2016/08/08 PHP
关于PHP中字符串与多进制转换函数的实例代码
2016/11/03 PHP
使用swoole 定时器变更超时未支付订单状态的解决方案
2019/07/24 PHP
javascript 实现父窗口引用弹出窗口的值的脚本
2007/08/07 Javascript
javascript 处理事件绑定的一些兼容写法
2009/12/24 Javascript
各浏览器对document.getElementById等方法的实现差异解析
2013/12/05 Javascript
Asp.Net alert弹出提示信息的几种方法总结
2014/01/29 Javascript
多种方法实现360浏览器下禁止自动填写用户名密码
2014/06/16 Javascript
由ReactJS的Hello world说开来
2015/07/02 Javascript
原生js三级联动的简单实现代码
2016/06/07 Javascript
jQuery获取浏览器类型和版本号的方法
2016/07/05 Javascript
Three.js学习之网格
2016/08/10 Javascript
修改jquery中dialog的title属性方法(推荐)
2016/08/26 Javascript
BootStrap Fileinput插件和Bootstrap table表格插件相结合实现文件上传、预览、提交的导入Excel数据操作步骤
2017/08/07 Javascript
详解vue-cli项目中用json-sever搭建mock服务器
2017/11/02 Javascript
javaScript中"=="和"==="的区别详解
2018/03/16 Javascript
Node.js实现注册邮箱激活功能的方法示例
2018/03/23 Javascript
js中的this的指向问题详解
2019/08/29 Javascript
jQuery实现的分页插件完整示例
2020/05/26 jQuery
OpenLayers3实现地图鹰眼以及地图比例尺的添加
2020/09/25 Javascript
[01:21]DOTA2周边文化主题展 神秘商店火热开售
2017/07/30 DOTA
常用python数据类型转换函数总结
2014/03/11 Python
Python中生成器和yield语句的用法详解
2015/04/17 Python
浅谈Python2.6和Python3.0中八进制数字表示的区别
2017/04/28 Python
使用python画个小猪佩奇的示例代码
2018/06/06 Python
Python一键安装全部依赖包的方法
2019/08/12 Python
Python3 A*寻路算法实现方式
2019/12/24 Python
诗普兰迪官方网站:Splendid
2018/09/18 全球购物
Stella McCartney官网:成衣、包袋、香水、内衣、童装及Adidas系列
2018/12/20 全球购物
军训自我鉴定
2014/01/22 职场文书
舞蹈兴趣小组活动总结
2014/07/07 职场文书
出差报告格式模板
2014/11/06 职场文书
SQL Server中交叉联接的用法详解
2021/04/22 SQL Server
原生Javascript+HTML5一步步实现拖拽排序
2021/06/12 Javascript