ホームページ  >  記事  >  バックエンド開発  >  ウェブサイトに適した PHP キャッシュ クラス_PHP チュートリアル

ウェブサイトに適した PHP キャッシュ クラス_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:34:36764ブラウズ

実際の運用ではキャッシュが広く使われており、サーバーデータベースへのアクセスを軽減し、動作速度を向上させることができます。現在、多くの CMS コンテンツ管理システムは、システム運用の効率を向上させるためにキャッシュ メカニズムを頻繁に使用しています。以下はよく書かれたキャッシュクラスです。キャッシュの仕組みと書き方を参照してください。

cache.phpのコードは次のとおりです:

[php] plaincopy を表示ウェブサイトに適した PHP キャッシュ クラス_PHP チュートリアルウェブサイトに適した PHP キャッシュ クラス_PHP チュートリアル
  1. /*
  2. ユーザーが事前に定義する必要がある定数:
  3. _CachePath_ テンプレートのキャッシュ パス
  4. _CacheEnable_ 自動キャッシュ メカニズムが有効であるか、未定義または空であり、自動キャッシュ メカニズムがオフになっていることを示します
  5. _ReCacheTime_ 自動再キャッシュ間隔 (秒単位)、未定義または空で、自動再キャッシュがオフになっていることを示します
  6. */
  7. クラスキャッシュ
  8. {
  9. var $キャッシュファイル
  10. var $キャッシュファイル変数
  11. 関数キャッシュ()
  12.                                                            
  13. //現在のページのキャッシュ グループ ファイル名 $this->cachefilevar とファイル名 $this->cachefile を生成します
  14. //動的ページのパラメーターは異なり、対応するキャッシュファイルも異なりますが、各動的ページのすべてのキャッシュファイルは同じファイル名を持っていますが、拡張機能は異なります
  15. $s=array(".","/");$r=array("_","");
  16. $this->cachefilevar=str_replace($s,$r,$_SERVER["SCRIPT_NAME"])."_".$_GET[_ActionVar_];
  17. $this->cachefile=$this->cachefilevar.".".md5($_SERVER["REQUEST_URI"]);
  18. }
  19. // 現在のページ/モジュールのキャッシュを削除します
  20. 関数削除()
  21.                                                            
  22. // 現在のページのキャッシュを削除します
  23. $d = dir(_CachePath_);
  24. $strlen=strlen($this->cachefilevar);
  25. //現在のページのすべてのキャッシュ ファイル グループを返す
  26.                                                                                                                                                                                                                                           
  27.                                                                   
  28. If (substr($entry,0,$strlen)==$this->cachefilevar)
  29.                                                             
  30. If (!unlink(_CachePath_."/".$entry)) {echo "キャッシュ ディレクトリに書き込めません";exit;}
  31.                                                                                         
  32.                                                                           
  33. }
  34. //キャッシュされているかどうか、またキャッシュする必要があるかどうかを判断します
  35. 関数チェック()
  36.                                                            
  37. //キャッシュ更新間隔が設定されている場合 _ReCacheTime_
  38. (_ReCacheTime_+0>0) の場合
  39.                                                                   
  40. // 現在のページのキャッシュの最終更新時刻に戻ります
  41. $var=@file(_CachePath_."/".$this->cachefilevar);
  42. //更新時間が更新間隔を超えた場合、キャッシュファイルを削除
  43. if(time() - $ var> _recachetime_)
  44.                                                             
  45. $this->delete();
  46.                                                                                     
  47.                                                                         
  48. //現在のページのキャッシュに戻ります
  49. $file=_CachePath_."/".$this->cachefile;
  50. // 現在のページのキャッシュが存在するかどうか、およびキャッシュ機能がオンになっているかどうかを判断します
  51. return (file_exists($file) と _CacheEnable_ と !$ischange);
  52. }
  53. // リードキャッシュ
  54. 関数 read()
  55.                                                            
  56. //現在のページのキャッシュに戻ります
  57. $file=_CachePath_."/".$this->cachefile;
  58. //キャッシュファイルの内容を読み取ります
  59. if (_CacheEnable_) return readfile($file);
  60. それ以外の場合は false を返します。
  61.                                                                
  62. //キャッシュを生成する
  63. 関数書き込み($output)
  64.                                                            
  65. //現在のページのキャッシュに戻る
  66. $file=_CachePath_."/".$this->cachefile;
  67. //キャッシュ機能がオンの場合
  68. if (_CacheEnable_)
  69.                                                                   
  70. //出力コンテンツをキャッシュ ファイルに書き込みます
  71. $fp=@fopen($file,'w');
  72. if (!@fputs($fp,$output)) {echo "テンプレート キャッシュの書き込みに失敗しました";exit;}
  73. @fclose($fp);
  74. //キャッシュ更新間隔が設定されている場合 _ReCacheTime_
  75. if (_ReCacheTime_+0>0)
  76.                                                             
  77. // 現在のページキャッシュの最終更新時刻を更新します
  78. $file=_CachePath_."/".$this->cachefilevar;
  79. $fp=@fopen($file,'w');
  80. if(!@fwrite($ fp、time())){echo "cache directoryは";}
  81. @fclose($fp);
  82.                                                                                     
  83.                                                                         
  84.                                                                
  85. }
  86. ?>
  87. クラスの使用法:
  88. [php]
  89. plaincopy を表示


Define("_CachePath_","./cache/");

定義("_CacheEnable_","1");

定義("_ReCacheTime_","43200"); include('cache.php'); $cache=新しいキャッシュ(); ウェブサイトに適した PHP キャッシュ クラス_PHP チュートリアル If ($cache->check()) ウェブサイトに適した PHP キャッシュ クラス_PHP チュートリアル
                                                               
  1. $template=$cache->read();
  2. }
  3. その他
  4.                                                            
  5. ob_start();
  6. ob_implicit_flush(0);
  7. ?>
  8. ページのコンテンツ。 。 。 。
  9. $template = ob_get_contents();
  10. $cache->write($template);
  11.                                                                
  12. ?>
  13. http://www.bkjia.com/PHPjc/750358.html
  14. www.bkjia.com
  15. tru​​e
  16. http://www.bkjia.com/PHPjc/750358.html
  17. 技術記事
  18. 実際の運用ではキャッシュが広く使われており、サーバーデータベースへのアクセスを軽減し、動作速度を向上させることができます。現在、多くの CMS コンテンツ管理システムは、システムを改善するためにキャッシュ メカニズムを頻繁に使用しています...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。