-
-
function page_init() - {
- $url = $_SERVER['REQUEST_URI'];//サブ URL、このパラメータは通常一意です
- $pageid = md5( $url);
- $dir = str_replace('/','_',substr($_SERVER['SCRIPT_NAME'],1,-4));
- //exp_index などのディレクトリ命名方法
- if(!file_exists ( $pd = PAGE_PATH.$dir.'/'))@mkdir($pd,0777) または die("$pd ディレクトリの作成に失敗しました");
- //cache/page/exp_index/
- define('PAGE_FILE など) ', $pd.$pageid.'.html');
- //キャッシュ/page/exp_index/cc8ef22b405566745ed21305dd248f0e.html
- $contents = file_get_contents(PAGE_FILE);//読み出す
if ( $contents && substr($contents, 13, 10) > time() )//page_cache() 関数に追加されたカスタムヘッダーに対応します
- {
- echo substr($contents, 27);
- exit(0) ;
- }
- return true;
- }
- ?>
-
コードをコピー
2 つ目、ページ キャッシュ関数、ここではトリックが使用されています: キャッシュ ファイルのコンテンツにヘッダーを追加します。 - 有効期限。毎回、ヘッダー内の有効期限と現在の時刻 (page_init() 関数で実行) を比較するだけで、キャッシュの有効期限が切れているかどうかを判断できます。
-
- function page_cache($ttl = 0)
- {
- $ttl = $ttl ? $ttl : PAGE_TTL;//キャッシュ時間、デフォルトは3600秒
- $contents = ob_get_contents();//キャッシュからコンテンツを取得
- $contents = "n".$contents;
- //カスタムヘッダーを追加: 期限切れ Time = 生成時間+ キャッシュ時間
- file_put_contents(PAGE_FILE, $contents);//キャッシュファイルに書き込む
- ob_end_flush();//キャッシュを解放する
- }
- ?>
コードをコピーする
3. 関数の使用法に注意してください。これら 2 つの関数の実行順序、および ob_start() を忘れないでください。
-
-
- page_init();//ページキャッシュの初期化
- ob_start();//キャッシュをオンにする
...//コードSection
page_cache(60);//通常は最後の行
- ?>
-
コードをコピー
|