程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> PHP程序加速探索之壓縮輸出gzip

PHP程序加速探索之壓縮輸出gzip

編輯:關於PHP編程

利用Apache中的mod_gzip模塊,我們可以利用gzip的壓縮算法來對Apache服務器發布的網頁內容進行壓縮後再傳輸到客戶端的浏覽器。如果是純文本的內容,效果非常明顯,大約可以壓縮到原來的30%-40%,使用戶的浏覽速度大大加快。

  Gzip需要客戶端浏覽器支持,目前大部份浏覽器都支持gzip,如IE,Netscape,Mozilla等,所以這種方法值得一試。我們可以利用PHP中的預定義變量$_SERVER[‘HTTP_ACCEPT_ENCODING’]來判斷客戶端浏覽器是否支持gzip。

  gzip1.php

if(ereg(gzip,$_SERVER[HTTP_ACCEPT_ENCODING])) {
 //浏覽器支持
} else {
 //浏覽器不支持,輸出其它內容
}
?>
  接下來我們對上面這個PHP程序進行擴展,使用ob_start(ob_gzhandler)來將網頁內容壓縮,存入緩沖並發送給支持gzip的浏覽器,浏覽器會自動將壓縮後的內容解壓,顯示。

  gzip2.php

define(MAX,100);

if(ereg(gzip,$_SERVER[HTTP_ACCEPT_ENCODING]))
{
 //浏覽器支持gzip,將內容壓縮並緩沖輸出
 ob_start("ob_gzhandler");
 $output = ;

 for($i=0;$i<=MAX;$i++)
 {
  $output .= "This is line $i ";
 }
 echo "浏覽器支持gzip壓縮輸出";
 echo $output;
}
else
{
 //浏覽器不支持,直接輸出
 for($i=0;$i<=MAX;$i++)
 {
  $output .= "This is line $i ";
 }

 echo "浏覽器不支持gzip壓縮輸出 ";
 echo $output;
}
?>
  使用gzip壓縮生成的網頁的HTTP頭信息與一般的網頁相比中會多出這樣的信息:

Content-Encoding: gzip
Content-Length: 270
  如果你想得到更詳細的信息,請參看mod_gzip項目主頁:

  http://sourceforge.net/projects/mod-gzip/

  類似地,我們也可以利用mod_deflate,壓縮率比mod_gzip略低一些。調用zip函數需要耗用服務器內存,所以要慎用,視需求而定。

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