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数组应该有多大的分析
Jul 30 PHP
ThinkPHP中实例Model方法的区别说明
Aug 21 PHP
destoon复制新模块的方法
Jun 21 PHP
php自动获取关键字的方法
Jan 06 PHP
php实现插入数组但不影响原有顺序的方法
Mar 27 PHP
浅谈php提交form表单
Jul 01 PHP
利用PHP自动生成印有用户信息的名片
Aug 01 PHP
php利用imagemagick实现复古老照片效果实例
Feb 16 PHP
PHP实现将标点符号正则替换为空格的方法
Aug 09 PHP
PHP让数组中有相同值的组成新的数组实例
Dec 31 PHP
PHP四种排序算法实现及效率分析【冒泡排序,插入排序,选择排序和快速排序】
Apr 27 PHP
PHP 实现重载
Mar 09 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
检测png图片是否完整的php代码
2010/09/06 PHP
PHP5常用函数列表(分享)
2013/06/07 PHP
php用正则判断是否为数字的方法
2016/03/25 PHP
PHP实现的服务器一致性hash分布算法示例
2018/08/09 PHP
Laravel5.1 框架Request请求操作常见用法实例分析
2020/01/04 PHP
关于取不到由location.href提交而来的上级页面地址的解决办法
2009/07/30 Javascript
jquery tab插件制作实现代码
2010/06/22 Javascript
JavaScrip单线程引擎工作原理分析
2010/09/04 Javascript
jquery操作select大全
2014/04/25 Javascript
一看就懂:jsonp详解
2015/06/01 Javascript
详细解读JavaScript编程中的Promise使用
2015/07/27 Javascript
举例讲解JavaScript中将数组元素转换为字符串的方法
2015/10/25 Javascript
jQuery Validate初步体验(二)
2015/12/12 Javascript
微信小程序 获取设备信息 API实例详解
2016/10/02 Javascript
详谈jQuery中的一些正则匹配表达式
2017/03/08 Javascript
微信小程序开发之toast等弹框提示使用教程
2017/06/08 Javascript
基于JSON数据格式详解
2017/08/31 Javascript
vue cli升级webapck4总结
2018/04/04 Javascript
JS使用Date对象实时显示当前系统时间简单示例
2018/08/23 Javascript
vue基于element-ui的三级CheckBox复选框功能的实现代码
2018/10/15 Javascript
微信小程序使用二次贝塞尔曲线画波浪
2018/12/25 Javascript
浅析JavaScript异步代码优化
2019/03/18 Javascript
基于elementUI使用v-model实现经纬度输入的vue组件
2019/05/12 Javascript
Vue学习之axios的使用方法实例分析
2020/01/06 Javascript
Python 冒泡,选择,插入排序使用实例
2015/02/05 Python
Python实现在线暴力破解邮箱账号密码功能示例【测试可用】
2017/09/06 Python
python skimage 连通性区域检测方法
2018/06/21 Python
基于python3实现socket文件传输和校验
2018/07/28 Python
详解python 注释、变量、类型
2018/08/10 Python
python+os根据文件名自动生成文本
2019/03/21 Python
Pandas库之DataFrame使用的学习笔记
2019/06/21 Python
2015年毕业实习工作总结
2015/05/29 职场文书
pytorch 一行代码查看网络参数总量的实现
2021/05/12 Python
Mysql binlog日志文件过大的解决
2021/10/05 MySQL
MySQL优化常用的19种有效方法(推荐!)
2022/03/17 MySQL
MySQL表锁、行锁、排它锁及共享锁的使用详解
2022/04/02 MySQL