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

首頁 > 開發 > PHP > 正文

php實現網頁緩存的工具類分享

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

本文給大家分享的是php實現網頁緩存的工具類的代碼及使用方法,非常的實用,有需要的小伙伴可以參考下。

php程序在抵抗大流量訪問的時候動態網站往往都是難以招架,所以要引入緩存機制,一般情況下有兩種類型緩存

一、文件緩存

二、數據查詢結果緩存,使用內存來實現高速緩存

本例主要使用文件緩存。

主要原理使用緩存函數來存儲網頁顯示結果,如果在規定時間里再次調用則可以加載緩存文件。

工具類代碼:

 

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

使用方法:

使用方法如下:

一部分代碼放在要被緩存邏輯代碼前面:

 

 
  1. $cachedir = './Cache/'// 設定緩存目錄 
  2. $cache = new Cache ( $cachedir, 33 ); // 省略參數即采用缺省設置, $cache = new Cache($cachedir); 
  3. if (@$_GET ['cacheact'] != 'rewrite' || @$_GET ['clearCache'] == 'ok'// 此處為一技巧,通過xx.Php?cacheact=rewrite更新緩存,以此類推,還可以設定一些其它操作 
  4. $cache->load (); // 裝載緩存,緩存有效則不執行以下頁面代碼 
  5. // 頁面代碼開始 

一部分放在被緩存邏輯代碼后面:

 

 
  1. // 頁面代碼結束 
  2. $cache->write (); // 首次運行或緩存過期,生成緩存 

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久91精品国产| 久久精品亚洲精品| 亚洲男人天堂网| 国产69精品久久久久9999| 国产欧美日韩免费看aⅴ视频| 欧美俄罗斯性视频| 尤物yw午夜国产精品视频| 亚洲精品不卡在线| 国内精品久久影院| 久久久精品一区二区三区| 国产亚洲精品综合一区91| 欧美精品第一页在线播放| 色999日韩欧美国产| 亚洲精品一区二区三区不| 日韩视频―中文字幕| 欧美日韩一区二区三区| 中文字幕精品一区二区精品| 亚洲影院色无极综合| 欧美激情视频在线免费观看 欧美视频免费一| 精品国产成人在线| 97在线观看免费| 久久久久中文字幕2018| 国产精品久久久久久久久男| 成人免费网站在线| 在线观看欧美视频| 亚洲a一级视频| 26uuu亚洲伊人春色| 97视频在线观看成人| 麻豆国产va免费精品高清在线| 欧美午夜精品久久久久久浪潮| 97在线视频免费观看| 亚洲片av在线| 日韩在线中文字幕| 成人福利免费观看| 国产欧美va欧美va香蕉在| 精品无人区乱码1区2区3区在线| 久久伊人精品一区二区三区| 精品国产网站地址| 亚洲视频在线播放| 91精品中国老女人| 亚洲精品福利资源站| 成人免费网站在线| 国产91露脸中文字幕在线| 国产中文字幕亚洲| 欧美精品在线播放| 欧美国产欧美亚洲国产日韩mv天天看完整| 中文字幕久热精品在线视频| 亚洲视频在线观看视频| 国产精品久久久久久av下载红粉| 欧美国产日韩免费| 中文日韩在线视频| 国产午夜精品一区理论片飘花| 国产成人精品一区二区| 91久久精品日日躁夜夜躁国产| 亚洲人成在线免费观看| 555www成人网| 亚洲成人激情在线观看| 亚洲欧美日韩精品久久奇米色影视| 亚洲第一综合天堂另类专| 精品日本高清在线播放| 久久香蕉精品香蕉| 成人黄色网免费| 7m第一福利500精品视频| 亚洲女人天堂色在线7777| 中文字幕视频一区二区在线有码| 国产情人节一区| 亚洲综合中文字幕68页| 欧洲成人性视频| 国产一区二区三区视频在线观看| 91在线中文字幕| 国产精品青青在线观看爽香蕉| 亚洲国产精彩中文乱码av在线播放| 国产精品老牛影院在线观看| 欧美色另类天堂2015| 国产精品www色诱视频| 国产午夜精品视频免费不卡69堂| 国产精品99导航| 欧美精品手机在线| 尤物精品国产第一福利三区| 精品国产欧美一区二区三区成人| 日本久久久久久久久| 亚洲精品国产欧美| 福利二区91精品bt7086| 日韩av高清不卡| 5252色成人免费视频| 国产成人精品在线播放| 日本不卡高字幕在线2019| 日韩欧美在线免费| 欧美另类在线播放| 欧美黄网免费在线观看| 欧美日韩在线观看视频小说| 91影院在线免费观看视频| 日韩电影视频免费| 日韩免费观看在线观看| 久久精品亚洲精品| 国产精品精品国产| 国产成人福利夜色影视| 欧美天天综合色影久久精品| 成人国产精品色哟哟| 成人写真视频福利网| 国产一区二区三区在线播放免费观看| 亚洲一区美女视频在线观看免费| 日韩av综合网| 日本韩国在线不卡| 国产精品免费久久久久影院| 欧美国产日韩xxxxx| 不卡av在线网站| 美女精品久久久| 国产精品一区二区久久精品| 亚洲香蕉伊综合在人在线视看| 孩xxxx性bbbb欧美| 欧美男插女视频| 成人免费视频网址| 26uuu亚洲伊人春色| 亚洲一区二区三区视频播放| 国产原创欧美精品| 激情成人在线视频| 热久久美女精品天天吊色| 久久精品国产一区二区电影| 成人在线视频网站| 国产精品成人免费视频| 国产欧美日韩专区发布| 久久久www成人免费精品张筱雨| 欧美日韩不卡合集视频| 亚洲国产精品va在线| 欧美激情中文网| 国产精品尤物福利片在线观看| 亚洲天堂av在线播放| 欧美激情久久久久| 欧美精品videosex牲欧美| 亚洲精品短视频| 2018中文字幕一区二区三区| 国产精品日韩在线观看| 日韩欧美第一页| 亚洲欧美激情四射在线日| 欧美亚洲在线视频| 96国产粉嫩美女| 国产成人精品免高潮费视频| 亚洲天堂免费在线| 视频在线观看一区二区| 欧美日韩激情网| 久色乳综合思思在线视频| 国产精品久久婷婷六月丁香| 久久成人在线视频| 亚洲欧美另类中文字幕| 456亚洲影院| 久久久精品免费| 欧美激情国产高清| 亚洲免费视频观看| 精品国产成人在线| 日本韩国欧美精品大片卡二| 国产精品99久久久久久www| 日韩欧美在线视频免费观看| 国产女精品视频网站免费| 91精品国产91久久久久久| 26uuu国产精品视频| 亚洲无av在线中文字幕| 中文日韩在线视频| 日韩精品高清在线观看| 欧美日韩一区二区三区在线免费观看| 久热在线中文字幕色999舞| 亚洲精品美女免费| 日本午夜在线亚洲.国产| 福利微拍一区二区|