程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> IIS6.0 開啟Gzip與PHP Gzip

IIS6.0 開啟Gzip與PHP Gzip

編輯:關於PHP編程

因為在做一個項目,項目裡面服務器主要提供數據,但是數據多了文件就大了,比較浪費流量和時間,我們便用Gzip來處理。我在本機上是apache,服務器上是IIS6.0,用的是php,那麼我就在這裡分享一下。

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; //返回壓縮的內容,或者說把壓縮好的餅干送回工作台。
}

 

 

 

 

轉載請注明出處:http://www.cnblogs.com/yydcdut

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved