要允許緩存PHP生成的文件,我想確保'Pragma:no-cache'標題爲而不是集合。但是,如何刪除可能已經設置的標題?在PHP中刪除標題
也就是說,它可能是可能的,在某些地方的代碼有人寫header('Pragma: no-cache');
現在我想確保,頭不發送。
是否足以做到這一點:
header('Pragma:');
或者是有什麼樣delete_header()
(這很顯然,是無證或隱藏良好)?
要允許緩存PHP生成的文件,我想確保'Pragma:no-cache'標題爲而不是集合。但是,如何刪除可能已經設置的標題?在PHP中刪除標題
也就是說,它可能是可能的,在某些地方的代碼有人寫header('Pragma: no-cache');
現在我想確保,頭不發送。
是否足以做到這一點:
header('Pragma:');
或者是有什麼樣delete_header()
(這很顯然,是無證或隱藏良好)?
header_remove()由於PHP 5.3
你可以通過傳遞第二個參數給header()
覆蓋先前設置的標題:
void header (string $string [, bool $replace = true [, int $http_response_code ]])
'雜注'標題行爲不是由規範定義的 - 儘管wi我們相信,發送一個'Pragma:No-cache'頭文件會對瀏覽器產生一些影響,實際上它幾乎被普遍忽略(並且永遠不會被我用過的任何PHP安裝程序返回)。
要告訴瀏覽器不要緩存內容,可以通過過期的日期頭,帶有無緩存值的緩存控制頭,或者(如果你想偷偷摸摸) :日期'標題。在沒有任何這些類型的頭部的情況下,客戶端不得高速緩存該頁面。
因此,相反,如果您希望頁面可緩存,請設置expires和cache-cntrol標頭。
C.
我知道這個問題已經老了,已經回答了。但是其中一些答案可能會給人留下錯誤的印象。請放心,如果您的響應標題包含Pragma: no-cache
,那麼絕對會阻止Web瀏覽器緩存資源,而不管其他設置如何。
所以當然,如果您至少使用PHP 5.3,您可以使用header_remove('Pragma');
刪除Pragma
標題。
既然PHP是開源軟件,那麼在那裏有一些「沒有文檔,很好隱藏」的東西是無稽之談。 – selfawaresoup 2010-04-03 18:04:14
@Techpriester:我知道幾十個完全沒有記錄的操作系統項目,隱藏起來也可能是無意的。 – Boldewyn 2010-04-03 21:11:01