首页 > 开发 > PHP > 正文

php文件缓存类用法实例分析

2024-05-04 23:34:36
字体:
来源:转载
供稿:网友

这篇文章主要介绍了php文件缓存类用法,以实例形式较为详细的分析了php文件缓存类的定义、功能及具体使用技巧,非常具有实用价值,需要的朋友可以参考下

本文实例讲述了php文件缓存类用法。分享给大家供大家参考。具体如下:

 

 
  1. <?php 
  2. /** 
  3. * 简单的文件缓存类 
  4. * 
  5. */ 
  6. class XZCache{ 
  7. // default cache time one hour 
  8. var $cache_time = 3600; 
  9. // default cache dir 
  10. var $cache_dir = './cache'
  11. public function __construct($cache_dir=null, $cache_time=null){ 
  12. $this->cache_dir = isset($cache_dir) ? $cache_dir : $this->cache_dir; 
  13. $this->cache_time = isset($cache_time) ? $cache_time : $this->cache_time; 
  14. public function saveCache ($key$value){ 
  15. if (is_dir($this->cache_dir)){ 
  16. $cache_file = $this->cache_dir . '/xzcache_' . md5($key); 
  17. $timedif = @(time() - filemtime($cache_file)); 
  18. if ($timedif >= $this->cache_time) { 
  19. // cached file is too old, create new 
  20. $serialized = serialize($value); 
  21. if ($f = @fopen($cache_file'w')) { 
  22. fwrite ($f$serializedstrlen($serialized)); 
  23. fclose($f); 
  24. $result = 1; 
  25. }else
  26. echo "Error:dir is not exist."
  27. $result = 0; 
  28. return $result
  29. /** 
  30. * @return array  
  31. * 0 no cache 
  32. * 1 cached 
  33. * 2 overdue 
  34. */ 
  35. public function getCache ($key) { 
  36. $cache_file = $this->cache_dir . '/xzcache_' . md5($key); 
  37. if (is_dir($this->cache_dir) && is_file($cache_file)) { 
  38. $timedif = @(time() - filemtime($cache_file)); 
  39. if ($timedif >= $this->cache_time) { 
  40. $result['cached'] = 2; 
  41. }else
  42. // cached file is fresh enough, return cached array 
  43. $result['value'] = unserialize(file_get_contents($cache_file)); 
  44. $result['cached'] = 1; 
  45. }else { 
  46. echo "Error:no cache"
  47. $result['cached'] = 0; 
  48. return $result
  49. //end of class 

用法示例如下:

 

 
  1. $cache = new XZCache(); 
  2. $key = 'global'
  3. $value = $GLOBALS
  4. $cache->saveCache($key$value); 
  5. $result = $cache->getCache($key); 
  6. var_dump($result); 

希望本文所述对大家的php程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表