1. 程式人生 > >PHP開啟gzip提升網頁響應速度

PHP開啟gzip提升網頁響應速度

1、apache開啟gzip(此方式需要重啟伺服器):

a.開啟模組:

LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so

b.httpd.conf中增加

<ifmodule deflate_module>
  DeflateCompressionLevel 9
  AddOutputFilterByType DEFLATE text/html text/plain text/xml application/json application/xml
  AddOutputFilter DEFLATE js css
  AddOutputFilter INCLUDES .shtml .htm .xml .php .html
</ifmodule>

c.重啟伺服器


2、php開啟gzip

原理:

header("Content-Encoding: gzip");
echo gzencode('songjiankang');

 示例1:

複製程式碼
function ob_gzip ($content) // $content 就是要壓縮的頁面內容,或者說餅乾原料
{
    if (! headers_sent() &&     // 如果頁面頭部資訊還沒有輸出
    extension_loaded("zlib") &&     // 而且zlib擴充套件已經載入到PHP中
    strstr($_SERVER
["HTTP_ACCEPT_ENCODING"], "gzip")) // 而且瀏覽器說它可以接受GZIP的頁面 { $content = gzencode($content . " \n//此頁已壓縮", 9); // 此頁已壓縮”的註釋標籤,然後用zlib提供的gzencode()函式執行級別為9的壓縮,這個引數值範圍是0-9,0表示無壓縮,9表示最大壓縮,當然壓縮程度越高越費CPU。 // 然後用header()函式給瀏覽器傳送一些頭部資訊,告訴瀏覽器這個頁面已經用GZIP壓縮過了!
header("Content-Encoding: gzip"); header("Vary: Accept-Encoding"); header("Content-Length: " . strlen($content)); } return $content; // 返回壓縮的內容,或者說把壓縮好的餅乾送回工作臺。 } ob_start('ob_gzip');
複製程式碼

 示例2:

#ob_gzhandler 為php內建函式,具體參考手冊
ob_start('ob_gzhandler');