2012-04-27 60 views
2

我用quickcache從http://sourceforge.net/projects/quickcache有緩存的一段時間未定義指數:HTTP_ACCEPT_ENCODING

在我的服務器[HTTP_ACCEPT_ENCODING] => gzip的一些動態頁面,縮小

但quickcache_main.php

if (strpos($_SERVER["HTTP_ACCEPT_ENCODING"],'x-gzip') !== false) 

if (strpos($_SERVER["HTTP_ACCEPT_ENCODING"],'gzip') !== false) { 

是invok編輯我得到error_log標題錯誤。當腳本創建新的緩存頁面時,我看不到從mysql表中加載這些緩存頁面或訪問未緩存(或過期)頁面的問題。我也從來沒有看到我的測試觸發了一個新的錯誤日誌,如標題。無論如何,我非常頻繁地看到他們列出。我錯過了什麼?

+3

的'的Accept-Encoding:'頭是不存在的所有請求/客戶端。缺席時:通知。 – mario 2012-04-27 17:28:43

+0

[PHP:「Notice:Undefined variable」和「Notice:Undefined index」]的可能重複(http://stackoverflow.com/questions/4261133/php-notice-undefined-variable-and-notice-undefined-index) – mario 2012-04-27 17:29:21

+0

@mario我不明白這一點。與鏈接問題相關,如果(isset ...,但通知仍然出現,我已添加。 – dstonek 2012-04-27 20:12:56

回答

0

你的代碼更改爲:

if (!isset($_SERVER['HTTP_ACCEPT_ENCODING'])) { 
    ob_start();    
} 
elseif (strpos(' ' . $_SERVER['HTTP_ACCEPT_ENCODING'], 'x-gzip') == false) { 
    if (strpos(' ' . $_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') == false) { 
     ob_start(); 
    } 
    elseif(!ob_start("ob_gzhandler")) { 
     ob_start(); 
    } 
} 
elseif(!ob_start("ob_gzhandler")) { 
    ob_start(); 
}