分享兩種壓縮頁面輸出數據以提高網頁訪問速度的方法,一種是通過使用php zlib擴展實現頁面gzip壓縮輸出(使用php的內置函數ob_gzhandler進行gzip壓縮輸出),另外一種方法是是通過修改php.ini配置文件開啟php gzip以實現壓縮頁面信息壓縮傳輸,現在分別詳細分享一下這兩種方法分別是如何實現的!
(1)通過php的內置函數ob_gzhandler進行gzip壓縮輸出
在頁面頭部添加如下代碼:
if(extension_loaded('zlib') && strstr($_SERVER['HTTP_ACCEPT_ENCODING'],'gzip')){ ob_start('ob_gzhandler'); }else{ exit('php zlib使用失敗,請確認是否已加載zlib擴展'); }
在頁面尾部添加如下代碼:
if(extension_loaded('zlib')){ob_end_flush();}
下面分別是訪問不同的域名但信息完全相同的兩個網站,結果如下圖:
(2)通過修改php.ini配置文件實現開啟或關閉php gzip以實現壓縮頁面信息壓縮傳輸
一、找到並打開php.ini配置文件,找到zlib.output_compression = Off,將
zlib.output_compression = Off ;zlib.output_compression_level = -1
修改為:
zlib.output_compression = On zlib.output_compression_level = 6
php gzip配置知識點:
1、默認php是不開啟zlib整站壓縮輸出的,而是通過對需要壓縮輸出的頁面使用ob_gzhandler函數實現,兩者只能二選一,否則會報錯。
2、zlib.output_compression默認值為Off,你可以將其設置為On,或者output buffer size(默認為4k)
3、zlib.output_compression_level代表壓縮比,默認推薦設置壓縮比值為6,可選范圍為1-9,-1代表關閉php zlib(gzip)壓縮
二、保存php.ini配置文件,並重啟apache服務器
三、打開apache 配置文件httpd.conf,配置裝載deflate_module。這一步是最關鍵的開啟php gzip壓縮輸出配置步驟,方法如下,找到
#LoadModule deflate_module modules/mod_deflate.so
這一段並去除開頭的#號,然後重啟apache即可。
注意:這種辦法是相對於php版本大於4.3來說的,php4.3版本以前的需要另外單獨安裝zlib的。另外本人使用的是phpnow搭建的php服務器,直接修改php.ini(phpnow的php相關選項配置文件是php-apache2handler.ini)的相關配置並重啟apache就行了,不用第二步操作。
下面分別是訪問不同的域名但信息完全相同的兩個網站,結果如下圖:
具體看效果可用火狐浏覽器查看,右鍵點擊網頁,彈出的菜單中有個查看頁面信息選項,彈出的窗口看大小那一項就是了。本人網站未有實現改功能,悲哀的是本人空間不支持gzip壓縮功能,代碼也不能實現!