首页 > 开发 > PHP > 正文

ThinkPHP文件缓存类代码分享

2024-05-04 23:34:38
字体:大 中 小
来源:转载
供稿:网友

本文给大家分享的是取自ThinkPHP中的关于文件缓存类的代码,非常的实用,效率也非常不错,这里推荐给大家,有需要的小伙伴参考下。

取自ThinkPHP的文件缓存类代码,这里就不多废话了,小伙伴们自己看注释吧。

 

 
  1. <?php 
  2. /** 
  3. * @desc 文件缓存 
  4. */ 
  5. class Cache{ 
  6. const C_FILE = '/Runtime/'; 
  7. private $dir = ''; 
  8. const EXT = '.tpl'; 
  9. private $filename = ''; 
  10. public function __construct($dir = ''){ 
  11. $this->dir = $dir; 
  12.  
  13. } 
  14. /** 
  15. * @desc 设置文件缓存 
  16. * @param string $key 文件名  
  17. * @param unkonw $data 缓存数据 
  18. * @param int $expire 过期时间 
  19. */ 
  20. public function set($key,$data,$expire = 0){ 
  21. $this->filename = dirname(__FILE__).self::C_FILE.$this->dir.$key.self::EXT; 
  22. if(file_exists($this->filename)){ 
  23. $res = $this->get($key); 
  24. if(md5($res) == md5(json_encode($data) ) ){ 
  25. return true; 
  26. } 
  27. } 
  28. if(!is_dir(dirname($this->filename))){ 
  29. mkdir(dirname($this->filename),0777); 
  30. } 
  31.  
  32. $source = fopen($this->filename,'w+'); 
  33. fwrite($source,json_encode($data)); 
  34. fclose($source); 
  35. } 
  36.  
  37. /** 
  38. * @desc 获取文件 
  39. * @param string $key 文件名 
  40. */ 
  41. public function get($key){ 
  42. //$filename = dirname(__FILE__).self::C_FILE.$this->dir.$key.self::EXT; 
  43. if(!file_exists($this->filename)){ 
  44. return '缓存文件已经不存在'; 
  45. }else{ 
  46. $res = file_get_contents($this->filename); 
  47. } 
  48. return $res; 
  49. } 
  50. /** 
  51. * @desc 删除文件 
  52. * @param string $key 文件名 
  53. */ 
  54. public function del($key){ 
  55. unlink($this->filename); 
  56. } 
  57.  
  58. } 
  59.  
  60. $data = array('name'=>'song','age'=>20,'sex'=>'man','favority'=>array('apple','banana')); 
  61. $cache = new Cache(); 
  62. $cache->set('cache',$data); 
  63. //$cache->get('cache'); 
  64. //$cache->del('cache'); 

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