PHP程式加速探索[7]–壓縮輸出 gzip

來源:互聯網
上載者:User

壓縮輸出 gzip

利用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;$iMAX;$i++)
????{
????????$output .= "This is line $i
"
;
????}
????echo "瀏覽器支援gzip壓縮輸出
"
;
????echo $output;
}
else
{
????//瀏覽器不支援,直接輸出
????for($i=0;$iMAX;$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.