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

來源:互聯網
上載者:User
利用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函數需要耗用伺服器記憶體,所以要慎用,視需求而定。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.