define('CACHE_ROOT', dirname(__FILE__).'/cache') //キャッシュ格納ディレクトリ
define('CACHE_TIME', 1800);//キャッシュ時間(秒)
define('CACHE_FIX','.html');
$CacheName=md5($_SERVER['REQUEST_URI']).CACHE_FIX; //キャッシュファイル名
$CacheDir=CACHE_ROOT.'/'.substr($CacheName,0,1);//キャッシュファイル格納ディレクトリ
$CacheUrl=$CacheDir.'/'.$CacheName;//キャッシュ ファイルのフル パス
//キャッシュは GET リクエスト後にのみキャッシュされます。通常は、最新の結果を確認する必要があります。
if($_SERVER['REQUEST_METHOD']=='GET'){
//キャッシュ ファイルが存在し、有効期限が切れていない場合は、それを読み出します。
if(file_exists($CacheName) && time()-filemtime($CacheName) $fp=fopen($CacheName,'rb'); fパススルー($fp) fclose($fp); 終了 } // フォルダーが存在するかどうかを判断し、存在しない場合は作成します elseif(!file_exists($CacheDir)){ if(!file_exists(CACHE_ROOT)){ mkdir(CACHE_ROOT,0777); chmod(CACHE_ROOT,0777);
chmod($CacheDir,0777);
//新しいキャッシュの生成中に、スペースを節約するためにすべての古いキャッシュが自動的に削除されますが、無視しても構いません。 //DelOldCache(); $content を返す; } 関数 DelOldCache(){ chdir(CACHE_ROOT) foreach (glob("*/*".CACHE_FIX) as $file){ if(time()-filemtime($file)>CACHE_TIME)unlink($file); } } //コールバック関数 auto_cache ob_start('AutoCache'); }その他{ // GET リクエストでない場合はキャッシュ ファイルを削除します。 if(file_exists($CacheUrl))unlink($CacheUrl); } ?>