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 相关文章推荐
一个好用的分页函数
Nov 16 PHP
php $_ENV为空的原因分析
Jun 01 PHP
PHP安全性漫谈
Jun 28 PHP
解析:通过php socket并借助telnet实现简单的聊天程序
Jun 18 PHP
PHP文件上传主要代码讲解
Sep 30 PHP
PHP错误Parse error: syntax error, unexpected end of file in test.php on line 12解决方法
Jun 23 PHP
PHP里8个鲜为人知的安全函数分析
Dec 09 PHP
使用纯php代码实现页面伪静态的方法
Jul 25 PHP
PHP入门教程之面向对象基本概念实例分析
Sep 11 PHP
php原生导出excel文件的两种方法(推荐)
Nov 19 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
Sep 22 PHP
解决laravel5.4下的group by报错的问题
Oct 16 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
《Re:从零开始的异世界生活》剧情体验,手游新作定名
2020/04/09 日漫
PHP-CGI进程CPU 100% 与 file_get_contents 函数的关系分析
2011/08/15 PHP
PHP提交表单失败后如何保留已经填写的信息
2014/06/20 PHP
php遍历树的常用方法汇总
2015/06/18 PHP
Laravel框架实现利用中间件进行操作日志记录功能
2018/06/06 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
推荐40个非常优秀的jQuery插件和教程【系列三】
2011/11/09 Javascript
jquery中focus()函数实现当对象获得焦点后自动把光标移到内容最后
2013/09/29 Javascript
jquery的clone方法应用于textarea和select的bug修复
2014/06/26 Javascript
jQuery中offset()方法用法实例
2015/01/16 Javascript
JavaScript拖拽、碰撞、重力及弹性运动实例分析
2016/01/08 Javascript
输入法的回车与消息发送快捷键回车的冲突解决方法
2016/08/09 Javascript
jQuery的 $.ajax防止重复提交的两种方法(推荐)
2016/10/14 Javascript
利用JQuery阻止事件冒泡
2016/12/01 Javascript
jquery Banner轮播选项卡
2016/12/26 Javascript
详解AngularJs ui-router 路由的简单介绍
2017/04/26 Javascript
fetch 使用及如何接收JS传值
2017/11/11 Javascript
JavaScript数组基于交换的排序示例【冒泡排序】
2018/07/21 Javascript
基于mpvue小程序使用echarts画折线图的方法示例
2019/04/24 Javascript
微信小程序发布新版本时自动提示用户更新的方法
2019/06/07 Javascript
Python3使用requests包抓取并保存网页源码的方法
2016/03/15 Python
Python常用的爬虫技巧总结
2016/03/28 Python
Python实现pdf文档转txt的方法示例
2018/01/19 Python
Pandas缺失值2种处理方式代码实例
2020/06/13 Python
Python 如何查找特定类型文件
2020/08/17 Python
Numpy ndarray 多维数组对象的使用
2021/02/10 Python
详解CSS3 filter:drop-shadow滤镜与box-shadow区别与应用
2020/08/24 HTML / CSS
面临毕业的毕业生自荐书范文
2014/02/05 职场文书
银行办公室岗位职责
2014/03/10 职场文书
我的中国梦演讲稿初中篇
2014/08/19 职场文书
乡镇挂职心得体会
2014/09/04 职场文书
无财产离婚协议书范本
2014/10/28 职场文书
2014年手术室工作总结
2014/11/26 职场文书
工作时间证明
2015/06/15 职场文书
运动会100米加油稿
2015/07/21 职场文书
CentOS7环境下MySQL8常用命令小结
2022/06/10 Servers