ホームページ >バックエンド開発 >PHPチュートリアル >PHPページキャッシュOBシリーズ関数の紹介

PHPページキャッシュOBシリーズ関数の紹介

高洛峰
高洛峰オリジナル
2016-12-01 14:45:001586ブラウズ

PHPのページキャッシュは主にob_start()、ob_end_flush()、ob_get_contents()などのobシリーズの関数を使用します

以下はエンコード部分です。

1. 初期化機能。通常はページキャッシュパス、キャッシュファイルの命名形式などを設定しますが、個人の好みに応じてカスタマイズできます。ここで使用される識別 ID は、暗号化された $_SERVER[REQUEST_URI] パラメーターです。この関数の最後には if 判定があり、キャッシュ期間が経過していない場合はキャッシュ ファイルをロードし、そうでない場合はソース ファイルをロードします。

コードをコピーする コードは次のとおりです:
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');
//cache/page/exp_index/cc8ef22b405566745ed21305dd248f0e.html など
$contents = file_get_contents(PAGE_FILE);//読み出す

if($contents && substr($contents, 13) , 10) > time () )//page_cache() 関数に追加されたカスタムヘッダーに対応します
echo substr($contents, 27);
return true;

2. ページ キャッシュ関数。ここではトリックを使用します。ヘッダー情報 (有効期限) をキャッシュ ファイルのコンテンツに追加します。そのため、毎回、ヘッダーの有効期限と現在の時刻 (page_init 内) を比較するだけで済みます。 () 関数実行) を実行して、キャッシュの有効期限が切れているかどうかを判断します。
コードのコピー コードは次のとおりです:
function page_cache($ttl = 0)
{
$ttl = $ttl ? $ttl : PAGE_TTL;//キャッシュ時間、デフォルトは 3600 秒
$contents = ob_get_contents();//Get from キャッシュ Content
$contents = "n".$contents
// カスタム ヘッダーを追加: 有効期限 = 生成時間 +キャッシュ時間
file_put_contents(PAGE_FILE, $contents);//キャッシュ ファイルに書き込みます
ob_end_flush();//キャッシュを解放します
}

3. 関数の使用法には、これら 2 つの関数には実行順序があることに注意してください。その他 ob_start() を忘れました
コードをコピーします コードは次のとおりです:
page_init();//ページキャッシュの初期化
ob_start();//キャッシュをオンにする

...//コードセグメント

page_cache(60) ;//通常は最後の行

?>

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