我有以下功能在我的頭PHP緩存的控制設定不工作
function header_alter($file)
{
$timestamp=filemtime($file);
$tsstring = gmdate('D, d M Y H:i:s ', $timestamp) . 'GMT';
$etag = $timestamp;
$if_modified_since = isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) ? $_SERVER['HTTP_IF_MODIFIED_SINCE'] : false;
$if_none_match = isset($_SERVER['HTTP_IF_NONE_MATCH']) ? $_SERVER['HTTP_IF_NONE_MATCH'] : false;
if ((($if_none_match && $if_none_match == $etag) || (!$if_none_match)) &&
($if_modified_since && $if_modified_since == $tsstring))
{
$arr[] = 'HTTP/1.1 304 Not Modified';
}
else
{
$arr[] = "Last-Modified: $tsstring";
$arr[] = "ETag: \"{$etag}\"";
}
$arr[] = "Cache-Control: max-age=3600";
$arr[] = 'Expires: ' . date('D, d M Y H:i:s', time() + (3600)) . ' GMT';
return $arr;
}
但是當我使用下面的代碼,看看標題
foreach (getallheaders() as $name => $value) {
echo "$name: $value\n";
}
Host: localhost
Connection: keep-alive
**Cache-Control: max-age=0**
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
Accept-Encoding: gzip, deflate
Accept-Language: en-GB,en-US;q=0.8,en;q=0.6
If-None-Match: "1387557104"
If-Modified-Since: Fri, 19 Dec 2013 16:31:44 GMT
該緩衝控制不會更新。 Thnx幫助球員。
getallheaders()可以返回由客戶端當前請求所發送的報頭。客戶端無法告訴服務器緩存控制設置 - 這僅適用於服務器 - >客戶端響應。你需要使用客戶端工具(例如,螢火蟲,開發者控制檯,等等等等)看看服務器發送了什麼標題。 –
即時通訊使用鉻,我到底怎麼做? – Anup
'ctrl-shift-i'打開chrome開發工具。點擊網絡標籤,點擊與腳本URL相對應的請求,然後點擊標題標籤 –