PHPキャッシュクラス

WBOY
WBOYオリジナル
2016-07-25 09:09:581096ブラウズ
    define('CACHE_ROOT', dirname(__FILE__).'/cache'); //キャッシュ保存ディレクトリ
  1. define('CACHE_TIME', 1800) //キャッシュ時間単位秒
  2. define( 'CACHE_FIX','.html');
  3. $CacheName=md5($_SERVER['REQUEST_URI']).CACHE_FIX; //キャッシュファイル名
  4. $CacheDir=CACHE_ROOT.'/'.substr($CacheName,0,1 );//キャッシュ ファイルの保存ディレクトリ
  5. $CacheUrl=$CacheDir.'/'.$CacheName;//キャッシュ ファイルの完全なパス
  6. //キャッシュは、通常、POST リクエストの後にのみキャッシュされます。最新の結果を確認するには
  7. if ($_SERVER['REQUEST_METHOD']=='GET'){
  8. //キャッシュ ファイルが存在し、有効期限が切れていない場合は、それを読み取ります。
  9. if(file_exists($CacheName) && time()-filemtime($CacheName) $fp=fopen($CacheName,'rb');
  10. fpassthru($fp); ;
  11. exit;
  12. }
  13. //フォルダーが存在するかどうかを確認し、存在しない場合は作成します
  14. elseif(!file_exists(CACHE_ROOT)){
  15. mkdir(CACHE_ROOT,0777) ;
  16. chmod (CACHE_ROOT,0777);
  17. mkdir($CacheDir,0777);
  18. }
  19. //この関数はプログラム終了時に自動的に呼び出されます
  20. function AutoCache( $contents){
  21. $fp=fopen($fp,$contents);
  22. chmod($CacheUrl,0777); //新しいキャッシュを生成する キャッシュ中、スペースを節約するために古いキャッシュはすべて自動的に削除されるため、無視できます。
  23. //DelOldCache();
  24. return $contents;
  25. }
  26. function DelOldCache(){
  27. chdir(CACHE_ROOT);
  28. foreach (glob("*/*".CACHE_FIX) as $file){
  29. if(time() -filemtime($file)>CACHE_TIME)unlink($file);
  30. }
  31. }
  32. //コールバック関数 auto_cache
  33. ob_start('AutoCache');
  34. }else{
  35. //キャッシュ ファイルがキャッシュ ファイルでない場合は削除しますGETリクエスト。
  36. if(file_exists($CacheUrl))unlink($CacheUrl);
  37. }
  38. ?>
  39. コードをコピー
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。