ホームページ >php教程 >php手册 >PHP で header() 関数を使用してブラウザ キャッシュを設定するコード

PHP で header() 関数を使用してブラウザ キャッシュを設定するコード

WBOY
WBOYオリジナル
2016-06-13 12:13:421042ブラウズ

これには、次の 4 つのヘッダー タイプが含まれます。

Last-Modified (最終変更時刻)、
Pragma (コンパイル命令)。
最初の 3 つのヘッダーは HTTP1.0 標準に属します。 Last-Modified ヘッダーでは、UTC の日付と時刻の値が使用されます。キャッシュ システムは、Last-Modified 値がページのキャッシュされたバージョンよりも現在時刻に近いことを確認した場合、サーバーからの新しいバージョンを使用する必要があることを認識します。

Expires は、キャッシュされたバージョンの有効期限がいつ切れるか (GMT) を示します。これを以前の時刻に設定すると、サーバー上のページが強制的に使用されます。

プラグマは、ページ データの処理方法を定義します。次のようにページのキャッシュを回避できます:

header("Pragma:no-cache");

Cache-Co0ntrol ヘッダーは HTTP1.1 で追加され、より詳細な制御を実現できます。 (HTTP 1.0 ヘッダーも引き続き使用する必要があります)。次の表に示すように、キャッシュ制御には
多くの設定があります:

次の例では、header() を使用してブラウザのキャッシュを設定します。

指令 含义
public 可以在任何地方缓存
private 只能被浏览器缓存
no-cache 不能在任何地方缓存
must-revalidate 缓存必须检查更新版本
proxy-revalidate 代理缓存必须检查更新版本
max-age 内容能够被缓存的时期,以秒表示
s-maxage 覆盖共享缓存的max-age设置

コードをコピーします

コードは次のとおりです: // データベースに接続します:

$dbc = @mysqli_connect ('localhost', 'username', 'password', 'test') OR die ('');
// 最新の日付をタイムスタンプとして取得します:
$q = ' SELECT UNIX_TIMESTAMP(MAX( date_added)), UNIX_TIMESTAMP(MAX(date_completed)) FROM タスク';
$r = mysqli_query($dbc, $q)
list($max_a, $max_c) = mysqli_fetch_array r, MYSQLI_NUM);
// より大きいタイムスタンプを決定します:
$max = ($max_a > $max_c) ? $max_a : $max_c; // 秒単位でキャッシュ間隔を作成します。 >$interval = 60 * 60 * 6; // 6 時間
// ヘッダーを送信します:
header ("Last-Modified: " . gmdate ('r', $max)); ("有効期限: " . gmdate ("r", ($max $interval)));
ヘッダー ("キャッシュ制御: max-age=$interval");


1. データベースに接続後、データテーブル内の最新の日付値date_addedとdate_completedを取得し、UNIX_TIMESTAMP()関数を使用して戻り値を整数に変換し、最大値を取得して代入します。それを $max にします。
2. 適切なキャッシュ時間を定義します。



コードをコピー


コードは次のとおりです:

$interval=60*60*6 妥当 値はページ自体、訪問者数、ページの更新頻度によって決まります。上記のコードでは 6 時間です。 3. Last-Modified ヘッダーを送信します。



コードをコピー


コードは次のとおりです:

header("Last-Modified:".gmdate("r", ($max $interval))); gmdate() 関数がパラメーター「r」を使用すると、HTTP 仕様に従って対応する日付形式が返されます。 4. Expires ヘッダーを設定します。



コードをコピー


コードは次のとおりです:

header ("Expires: " . gmdate ("r", ($ max $interval ))); 5. Cache_Control ヘッダーを設定します。


コードをコピー

コードは次のとおりです:

header ("Cache-Control: max-age=$interval") ;

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。