亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

PHP實現的簡單緩存類

2024-05-04 23:38:20
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了PHP實現的簡單緩存類,實例分析了php緩存文件的定義及使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了PHP實現的簡單緩存類。分享給大家供大家參考。具體如下:

cache.inc.php:

 

 
  1. <?php 
  2. class Cache { 
  3. /** 
  4. * $dir : 緩存文件存放目錄 
  5. * $lifetime : 緩存文件有效期,單位為秒 
  6. * $cacheid : 緩存文件路徑,包含文件名 
  7. * $ext : 緩存文件擴展名(可以不用),這里使用是為了查看文件方便 
  8. */ 
  9. private $dir; 
  10. private $lifetime; 
  11. private $cacheid; 
  12. private $ext; 
  13. /** 
  14. * 析構函數,檢查緩存目錄是否有效,默認賦值 
  15. */ 
  16. function __construct($dir='',$lifetime=1800) { 
  17. if ($this->dir_isvalid($dir)) { 
  18. $this->dir = $dir; 
  19. $this->lifetime = $lifetime; 
  20. $this->ext = '.Php'
  21. $this->cacheid = $this->getcacheid(); 
  22. /** 
  23. * 檢查緩存是否有效 
  24. */ 
  25. private function isvalid() { 
  26. if (!file_exists($this->cacheid)) return false
  27. if (!(@$mtime = filemtime($this->cacheid))) return false
  28. if (mktime() - $mtime > $this->lifetime) return false
  29. return true
  30. /** 
  31. * 寫入緩存 
  32. * $mode == 0 , 以瀏覽器緩存的方式取得頁面內容 
  33. * $mode == 1 , 以直接賦值(通過$content參數接收)的方式取得頁面內容 
  34. * $mode == 2 , 以本地讀取(fopen ile_get_contents)的方式取得頁面內容(似乎這種方式沒什么必要) 
  35. */ 
  36. public function write($mode=0,$content='') { 
  37. switch ($mode) { 
  38. case 0: 
  39. $content = ob_get_contents(); 
  40. break
  41. default
  42. break
  43. ob_end_flush(); 
  44. try { 
  45. file_put_contents($this->cacheid,$content); 
  46. catch (Exception $e) { 
  47. $this->error('寫入緩存失敗!請檢查目錄權限!'); 
  48. /** 
  49. * 加載緩存 
  50. * exit() 載入緩存后終止原頁面程序的執行,緩存無效則運行原頁面程序生成緩存 
  51. * ob_start() 開啟瀏覽器緩存用于在頁面結尾處取得頁面內容 
  52. */ 
  53. public function load() { 
  54. if ($this->isvalid()) { 
  55. echo "<span style='display:none;'>This is Cache.</span> "
  56. //以下兩種方式,哪種方式好????? 
  57. require_once($this->cacheid); 
  58. //echo file_get_contents($this->cacheid); 
  59. exit(); 
  60. else { 
  61. ob_start(); 
  62. /** 
  63. * 清除緩存 
  64. */ 
  65. public function clean() { 
  66. try { 
  67. unlink($this->cacheid); 
  68. catch (Exception $e) { 
  69. $this->error('清除緩存文件失敗!請檢查目錄權限!'); 
  70. /** 
  71. * 取得緩存文件路徑 
  72. */ 
  73. private function getcacheid() { 
  74. return $this->dir.md5($this->geturl()).$this->ext; 
  75. /** 
  76. * 檢查目錄是否存在或是否可創建 
  77. */ 
  78. private function dir_isvalid($dir) { 
  79. if (is_dir($dir)) return true
  80. try { 
  81. mkdir($dir,0777); 
  82. catch (Exception $e) { 
  83. $this->error('所設定緩存目錄不存在并且創建失敗!請檢查目錄權限!'); 
  84. return false;  
  85. return true
  86. /** 
  87. * 取得當前頁面完整url 
  88. */ 
  89. private function geturl() { 
  90. $url = ''
  91. if (isset($_SERVER['REQUEST_URI'])) { 
  92. $url = $_SERVER['REQUEST_URI']; 
  93. else { 
  94. $url = $_SERVER['Php_SELF']; 
  95. $url .= empty($_SERVER['QUERY_STRING'])?'':'?'.$_SERVER['QUERY_STRING']; 
  96. return $url; 
  97. /** 
  98. * 輸出錯誤信息 
  99. */ 
  100. private function error($str) { 
  101. echo '<div style="color:red;">'.$str.'</div>'
  102. ?> 

demo.php:

 

 
  1. <?php 
  2. /* 
  3. * 可自由轉載使用,請保留版權信息,謝謝使用! 
  4. * Class Name : Cache (For Php5) 
  5. * Version : 1.0 
  6. * Description : 動態緩存類,用于控制頁面自動生成緩存、調用緩存、更新緩存、刪除緩存. 
  7. * Last Modify : 2007-8-22 
  8. * Remark : 
  9. 1.此版本為Php5版本,本人暫沒有寫Php4的版本,如需要請自行參考修改(比較容易啦,不要那么懶嘛,呵呵!). 
  10. 2.此版本為utf-8編碼,如果網站采用其它編碼請自行轉換,Windows系統用記事本打開另存為,選擇相應編碼即可(一般ANSI),Linux下請使用相應編輯軟件或iconv命令行. 
  11. 3.拷貝粘貼的就不用管上面第2條了. 
  12. * 關于緩存的一點感想: 
  13. * 動態緩存和靜態緩存的根本差別在于其是自動的,用戶訪問頁面過程就是生成緩存、瀏覽緩存、更新緩存的過程,無需人工操作干預. 
  14. * 靜態緩存指的就是生成靜態頁面,相關操作一般是在網站后臺完成,需人工操作(也就是手動生成). 
  15. */ 
  16. /* 
  17. * 使用方法舉例*/ 
  18. //Demo1: 
  19. require_once('cache.inc.php'); 
  20. $cachedir = './Cache/'//設定緩存目錄 
  21. $cache = new Cache($cachedir,10); //省略參數即采用缺省設置, $cache = new Cache($cachedir); 
  22. if ($_GET['cacheact'] != 'rewrite'//此處為一技巧,通過xx.Php?cacheact=rewrite更新緩存,以此類推,還可以設定一些其它操作 
  23. $cache->load(); //裝載緩存,緩存有效則不執行以下頁面代碼 
  24. //頁面代碼開始 
  25. echo date('H:i:s jS F'); 
  26. //頁面代碼結束 
  27. $cache->write(); //首次運行或緩存過期,生成緩存 
  28. //Demo2: 
  29. require_once('cache.inc.php'); 
  30. $cachedir = './Cache/'//設定緩存目錄 
  31. $cache = new Cache($cachedir,10); //省略參數即采用缺省設置, $cache = new Cache($cachedir); 
  32. if ($_GET['cacheact'] != 'rewrite'//此處為一技巧,通過xx.Php?cacheact=rewrite更新緩存,以此類推,還可以設定一些其它操作 
  33. $cache->load(); //裝載緩存,緩存有效則不執行以下頁面代碼 
  34. //頁面代碼開始 
  35. $content = date('H:i:s jS F'); 
  36. echo $content; 
  37. //頁面代碼結束 
  38. $cache->write(1,$content); //首次運行或緩存過期,生成緩存 
  39. //Demo3: 
  40. require_once('cache.inc.php'); 
  41. define('CACHEENABLE',true); 
  42. if (CACHEENABLE) { 
  43. $cachedir = './Cache/'//設定緩存目錄 
  44. $cache = new Cache($cachedir,10); //省略參數即采用缺省設置, $cache = new Cache($cachedir); 
  45. if ($_GET['cacheact'] != 'rewrite'//此處為一技巧,通過xx.Php?cacheact=rewrite更新緩存,以此類推,還可以設定一些其它操作 
  46. $cache->load(); //裝載緩存,緩存有效則不執行以下頁面代碼  
  47. //頁面代碼開始 
  48. $content = date('H:i:s jS F'); 
  49. echo $content; 
  50. //頁面代碼結束 
  51. if (CACHEENABLE) 
  52. $cache->write(1,$content); //首次運行或緩存過期,生成緩存 
  53. ?> 

希望本文所述對大家的php程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久久久电影一区| 国产精品一区二区电影| 亚洲网站在线看| 色与欲影视天天看综合网| 久久乐国产精品| 51精品国产黑色丝袜高跟鞋| 97在线精品视频| 欧美精品在线视频观看| 成人午夜在线观看| 亚洲第一网站免费视频| 国产成人免费av电影| 国产一区二区三区在线播放免费观看| 欧美视频专区一二在线观看| 国产精品日本精品| 午夜精品一区二区三区在线播放| 欧美精品一区二区免费| 91欧美日韩一区| 17婷婷久久www| 在线看日韩欧美| 91网站在线免费观看| 欧美国产亚洲视频| 久久久噜噜噜久噜久久| 一本色道久久综合狠狠躁篇的优点| 91在线|亚洲| 亚洲自拍av在线| 中文字幕精品av| 中文字幕亚洲情99在线| 人人澡人人澡人人看欧美| 国产亚洲xxx| 国产成人+综合亚洲+天堂| 91av视频在线| 国产精品精品国产| 日韩电影中文字幕在线| 欧美激情伊人电影| 91久久国产婷婷一区二区| 91精品中文在线| 亚洲国产精品热久久| 成人国产精品av| 亚洲福利小视频| 免费91麻豆精品国产自产在线观看| 欧美在线欧美在线| 久久久噜噜噜久久| 久久视频精品在线| 精品视频在线播放免| 91国偷自产一区二区三区的观看方式| 欧美福利在线观看| 国产精品视频免费在线| 91探花福利精品国产自产在线| 免费99精品国产自在在线| 97视频网站入口| 在线成人激情黄色| 日本国产一区二区三区| 国产精品亚洲精品| 91精品国产综合久久男男| 欧美一级视频免费在线观看| 成人久久精品视频| 韩剧1988免费观看全集| 欧美精品www在线观看| 一区二区三区精品99久久| 亚洲xxxx18| 亚洲精品自拍偷拍| 亚洲美女激情视频| 久久五月天综合| 国产精品三级久久久久久电影| 国产精品av免费在线观看| 亚洲人成电影网站色…| 亚洲二区在线播放视频| 亚洲精品少妇网址| 日韩资源在线观看| 国产精品网站大全| 亚洲色图第一页| 日产精品久久久一区二区福利| 欧美一级淫片丝袜脚交| 精品美女永久免费视频| 欧美一级电影在线| 国产有码一区二区| 庆余年2免费日韩剧观看大牛| 国产精品久久久久久久久粉嫩av| 亚洲国产精品人久久电影| 狠狠做深爱婷婷久久综合一区| 国产精品一区专区欧美日韩| 午夜免费日韩视频| 久久久视频免费观看| 成人精品视频99在线观看免费| 亚洲精品视频免费在线观看| 国产成人综合av| 亚洲欧美精品一区| 亚洲自拍欧美另类| 日韩天堂在线视频| 国产成人精品午夜| 亚洲视频axxx| 久久国产精品影片| 美乳少妇欧美精品| 国产亚洲欧美日韩精品| 九九热r在线视频精品| 日韩一区视频在线| 欧美黑人极品猛少妇色xxxxx| 琪琪第一精品导航| 性欧美在线看片a免费观看| 亚洲激情在线视频| 国产精品视频久久久久| 北条麻妃一区二区三区中文字幕| 亚洲精品一区二区网址| 亚洲成人国产精品| 久久精品亚洲国产| 热久久这里只有精品| 久久久久久久久久久网站| 欧美专区在线播放| 亚洲欧美国产高清va在线播| 欧美大片在线影院| 国产日韩欧美一二三区| 大伊人狠狠躁夜夜躁av一区| 91久久久久久| 亚洲变态欧美另类捆绑| 中文字幕日韩有码| 91国产美女视频| 久久国产精品久久久久久| 欧美交受高潮1| 日韩亚洲欧美中文高清在线| 成人字幕网zmw| 久久激情视频免费观看| 欧美日韩亚洲激情| 国内精品视频久久| 日韩高清有码在线| 国产精品免费久久久久影院| 亚洲国产精品va在看黑人| 精品中文字幕在线| 在线看片第一页欧美| 久久久久久久久久av| 68精品国产免费久久久久久婷婷| 欧美国产精品va在线观看| 大伊人狠狠躁夜夜躁av一区| 欧美成人免费网| 欧美电影免费观看高清| 亚洲午夜激情免费视频| 色悠悠国产精品| 国产欧美在线观看| 久久精品久久久久久国产 免费| 在线观看免费高清视频97| 国产精品三级在线| 日产日韩在线亚洲欧美| 一本色道久久综合亚洲精品小说| 日韩av网址在线观看| 欧美激情亚洲视频| 国产精品视频免费观看www| 一个色综合导航| 国模精品一区二区三区色天香| 米奇精品一区二区三区在线观看| 精品国产欧美一区二区五十路| 久久国产精品久久久久| 26uuu亚洲伊人春色| 欧美另类在线播放| 久久国产一区二区三区| 欧洲一区二区视频| 国产日韩在线播放| 97成人在线视频| 亚洲精品成人久久久| 久久国产视频网站| 欧美精品999| 5252色成人免费视频| 日韩视频免费观看| 久久综合网hezyo| 欧美一级淫片aaaaaaa视频| 久久精品91久久香蕉加勒比|