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;//キャッシュ ファイルの完全なパス
- //キャッシュは、通常、POST リクエストの後にのみキャッシュされます。最新の結果を確認するには
- if ($_SERVER['REQUEST_METHOD']=='GET'){
- //キャッシュ ファイルが存在し、有効期限が切れていない場合は、それを読み取ります。
- if(file_exists($CacheName) && time()-filemtime($CacheName) $fp=fopen($CacheName,'rb');
- fpassthru($fp); ;
- exit;
- }
- //フォルダーが存在するかどうかを確認し、存在しない場合は作成します
- elseif(!file_exists(CACHE_ROOT)){
- mkdir(CACHE_ROOT,0777) ;
- chmod (CACHE_ROOT,0777);
- mkdir($CacheDir,0777);
- }
- //この関数はプログラム終了時に自動的に呼び出されます
- function AutoCache( $contents){
- $fp=fopen($fp,$contents);
- chmod($CacheUrl,0777); //新しいキャッシュを生成する キャッシュ中、スペースを節約するために古いキャッシュはすべて自動的に削除されるため、無視できます。
- //DelOldCache();
- return $contents;
- }
- function DelOldCache(){
- chdir(CACHE_ROOT);
- foreach (glob("*/*".CACHE_FIX) as $file){
- if(time() -filemtime($file)>CACHE_TIME)unlink($file);
- }
- }
- //コールバック関数 auto_cache
- ob_start('AutoCache');
- }else{
- //キャッシュ ファイルがキャッシュ ファイルでない場合は削除しますGETリクエスト。
- if(file_exists($CacheUrl))unlink($CacheUrl);
- }
- ?>
-
-
- コードをコピー
-
-
-
-
-
-
|