[Utility.php] キャッシュファイルの使用サンプル 2
篠原 隆司
前回までに、キャッシュファイルを作成する関数と、キャッシュファイルを読込む関数を作成しました。
それでは、実際の使用例を紹介いたします。
使用例は2つあります。
- プログラムで動的に変化する箇所”だけ”をキャッシュする方法
- 出力内容全て・・・つまりブラウザに返却するHTMLデータまるごとキャッシュする方法
今回は、
ブラウザに返却するHTMLデータまるごとキャッシュする方法
を掲載いたします。
まずは、次のプログラムをご確認ください。
<title></title>
<meta name="keywords" content="">
<meta name="description" content="">
$lastModified);
// バッファを変数に格納
$content = ob_get_contents();
// キャッシュファイルに書込む
saveCacheFile($fileName, $headers, $content);
// バッファを出力(ブラウザにはここで出力)
ob_end_flush();
今回のポイントは、 ob_start(); です。
ob_start(); を行うと、全ての出力が一時的に保留されます。
保留された出力は、ob_end_flush();を行うことで、一気に開放されます。
バッファに貯まっている文字列は、 ob_get_contents();で取得できます。
出力内容をすべてバッファに貯めておき、処理の最後でバッファをキャッシュに保存しています。
$headers には、 lastModified を入れています。
lastModifiedは、このデータの最終更新日になります。
掲示板などの投稿サイトの場合ですと、最後に投稿があった日付をデータベースに保存しておき、新しい日付の投稿がなければデータが更新されていないので、キャッシュから読み出すという流れになります。