欧美性猛交xxx嘿人猛交_又色又爽又高潮免费观看_精品国产一区二区三区久久影院_青娱乐极品视觉盛宴国产视频

技術頻道導航
HTML/CSS
.NET技術
IIS技術
PHP技術
Js/JQuery
Photoshop
Fireworks
服務器技術
操作系統
網站運營

贊助商

分類目錄

贊助商

最新文章

搜索

zlib.output_compression比ob_gzhandler效率高

作者:admin    時間:2015-2-11 8:42:49    瀏覽:

zlib.output_compression和ob_gzhandler是php代碼壓縮的方法,通過使用這兩個方法,可以實現php代碼的gzip壓縮。不過,這兩個方法哪個更好呢?哪個效率更高呢?在編程中我們應該怎樣選擇?這都是程序員應該考慮的問題。

zlib.output_compression比ob_gzhandler效率高

其實,雖然zlib.output_compression和ob_gzhandler都可以進行php代碼壓縮,但它們的處理方式是不同的。

1)zlib.output_compression是在對網頁內容壓縮的同時發送數據至客戶端。

2)ob_gzhandler是等待網頁內容壓縮完畢后才進行發送

相比之下,zlib.output_compression效率更高。

需要注意的是,兩者不能同時使用,只能選其一,否則將出現錯誤。

兩者的實現方式分別如下:

1. zlib.output_compression實現方式

在默認情況下,zlib.output_compression是關閉:

zlib.output_compression = Off  
;zlib.output_compression_level = -1  

如需開啟需編輯php.ini文件,加入以下內容:

zlib.output_compression = On 
zlib.output_compression_level = 6  

可以通過phpinfo()函數檢測結果。

當zlib.output_compression的Local Value和MasterValue的值同為On時,表示已經生效,這時候訪問的PHP頁面(包括偽靜態頁面)已經GZIP壓縮了,通過Firebug或者在線網頁GZIP壓縮檢測工具可檢測到壓縮的效果。

2. ob_gzhandler的實現方式

如果需要使用ob_gzhandler,則需關閉zlib.output_compression,把php.ini文件內容更改為:

zlib.output_compression = Off 
zlib.output_compression_level = -1 

通過在PHP文件中插入相關代碼實現GZIP壓縮:

if (extension_loaded('zlib')) { 
    if (  !headers_sent() AND isset($_SERVER['HTTP_ACCEPT_ENCODING']) && 
          strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== FALSE) 
    //頁面沒有輸出且瀏覽器可以接受GZIP的頁面 
    { 
        ob_start('ob_gzhandler'); 
    } 

//待壓縮的內容 
echo $context; 
ob_end_flush();  

不管是zlib.output_compression還是ob_gzhandler,都僅能對PHP文件進行GZIP壓縮,對于HTML、CSS、JS等靜態文件只能通過調用PHP的方式實現。

知識擴展

ob_gzhandler

ob_gzhandler (PHP 4 >= 4.0.4, PHP 5)

ob_gzhandler — 在ob_start中使用的用來壓縮輸出緩沖區中內容的回調函數。ob_start callback function to gzip output buffer

說明

string ob_gzhandler ( string $buffer , int $mode )

ob_gzhandler()目的是用在ob_start()中作回調函數,以方便將gz 編碼的數據發送到支持壓縮頁面的瀏覽器。在ob_gzhandler()真正發送壓縮過的數據之前,該 函數會確定(判定)瀏覽器可以接受哪種類型內容編碼("gzip","deflate",或者根本什么都不支持),然后 返回相應的輸出。 所有可以發送正確頭信息表明他自己可以接受壓縮的網頁的瀏覽器,都可以支持。 All browsers are supported since it's up to the browser to send the correct header saying that it accepts compressed web pages. 如果一個瀏覽器不支持壓縮過的頁面,此函數返回FALSE。

參數

buffer

mode

返回值

更新日志

版本 4.0.5
說明 添加了 mode 參數。 

范例

Example #1 ob_gzhandler() example
<?php
ob_start("ob_gzhandler");
?>
<html>
<body>
<p>This should be a compressed page.</p>
</html>
<body>

注釋

Note: ob_gzhandler() 需要 zlib 擴展。
Note: 不能同時使用ob_gzhandler() 和 zlib.output_compression。 也要注意使用 zlib.output_compression 要優于 ob_gzhandler()。

您可能對如下文章也感興趣

php通過ini_set調用output_compression壓縮網頁

標簽: 壓縮  
x