一般而言,頁面文件開啟gzip壓縮以後,其體積可以減小60%~90%,對於文字類站點,可以節省下大量的帶寬與用戶等待時間。但是不論是iis還是apache默認都只壓縮html類靜態文件,對於php文件需要模塊配置才可支持(iis7.5中開啟動態+靜態壓縮也可以),於是利用php自身功能到達gzip的效果也成為一項合理的訴求。
網上的教程基本是你抄我來我抄他,不外乎加頭加尾或者自構函數兩種寫法。實際上每個php頁面都要去加代碼——當然也可以include引用,不過總顯得略微麻煩。
實際上最簡單的辦法,打開php目錄下的php.ini文件,找到zlib.output_compression = Off,改成zlib.output_compression = On,
再把;zlib.output_compression_level前面的;去掉,後面的-1改成1~5的數值。這樣便可以實現所有php頁面的gzip效果,不再需要單獨修改網站的php文件——如果站點很多的話,會節省很多時間。
需要說明的是以下幾點
一、;zlib.output_handler必須保持注釋掉,因為此參數和前面的設置沖突——官方的說法。
二、一般情況下緩存是4k(output_buffering = 4096)。
三、zlib.output_compression_level 建議參數值是1~5,6以實際壓縮效果提升不大,cpu占用卻是幾何增長。
圖1.通過firebug查看請求頭和回應頭,實際上gzip效果已經顯示
圖2.站長站gzip檢測工具也顯示gzip有效。