header() 関数は PHP で広く使用されていますが、ヘッダーを使用する前に、スペースを含む出力を実行できないことに注意してください。
マニュアルでは、コードがキャッシュされないようにキャッシュを設定する方法について説明しています。
コードは次のとおりです |
コードをコピー |
header("Cache-Control: no-store、no-cache、must-revalidate、post-check=0、pre-check=0"); // HTTP/1.1
header("有効期限: 1997 年 7 月 26 日土曜日 05:00:00 GMT"); // 過去の日付
header("Pragma: no-cache"); // 過去の日付
|
そして、設定するときは、ヘッダーの前に出力がないことに注意する必要があります。そうしないと、ヘッダーの設定が無効になります。ページのキャッシュを設定する方法については、いくつかの方法があることは知っていますが、これまで書いたことはありませんでした。 、E-TAGなど。もちろん簡単な設定もあります:
例えば、出力する前にコンテンツに対してmd5を実行し、変更がない限り影響はありません。他の方法もあります:
コードは次のとおりです |
コードをコピー |
キャッシュまでの秒数 = 3600;
$ts = gmdate("D, d M Y H:i:s", time() + $秒_to_cache) " GMT";
header("有効期限: $ts"); header("プラグマ: キャッシュ");
header("キャッシュ制御: max-age=$seconds_to_cache");
|
1 時間キャッシュする主な理由は、有効期限を date ではなく gmdate で設定する必要があることです。他のものはすべて同様です。 maxage は、expire と一致している必要があります。
PHP によって生成された動的コンテンツの場合、コンテンツが出力される前に必須のキャッシュ ヘッダーを出力するだけで済みます。たとえば、次のコードでは、ブラウザーがファイルを 1 か月間キャッシュする必要があります。
コードは次のとおりです
コードをコピー
|
|
header("キャッシュコントロール: public");
header("プラグマ: キャッシュ");
$offset = 30*60*60*24; // 1 か月キャッシュします ;
$ExpStr = "有効期限: ".gmdate("D, d M Y H:i:s", time() + $offset)." GMT";
ヘッダー($ExpStr);
?>
静的ファイルの場合、一般的なサーバーはレベル 3 のキャッシュ ステータスをサポートします。第 4 レベルのキャッシュ効果を実現したい場合は、PHP を使用して以前の GZIP 圧縮のようなレイヤーをアウトソーシングし、その後 PHP を使用してそれを処理することができます。サーバー側のサポートが必要な場合は、APACHE のモジュールである mod_expires がファイルへの Expires ヘッダーの追加をサポートします。サーバーに mod_expires モジュールがインストールされている場合、次のコードをブログ ディレクトリに追加すると、画像などが強制的に 1 か月間キャッシュされ、HTML ドキュメントは 10 分間キャッシュされます。 。モジュールがインストールされていない場合、エラーは発生しません。 |
コードは次のとおりです
コードをコピー
|
|
有効期限切れ有効期限
ExpiresByType 画像/gif A2592000
ExpiresByType 画像/jpeg A2592000
ExpiresByType image/png A2592000
ExpiresByType application/x-shockwave-flash A2592000
ExpiresByType text/css A2592000
ExpiresByType application/x-javascript A2592000
ExpiresByType text/html A600
|
mod_expires の詳細なドキュメントとチュートリアルはここにあります。しかし、私が指摘したいのは、mod_expires はほとんどのサーバーにインストールされていないということです
http://www.bkjia.com/PHPjc/631539.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/631539.html技術記事 header() 関数は PHP で広く使用されています。以下に、この関数を使用してページ キャッシュを実装する方法をいくつか紹介します。ただし、ヘッダーの前にスペースを含めて出力することはできないことに注意してください。 ...