首页 > 开发 > 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. * @desc 设置文件缓存 
  15. * @param string $key 文件名  
  16. * @param unkonw $data 缓存数据 
  17. * @param int $expire 过期时间 
  18. */ 
  19. public function set($key,$data,$expire = 0){ 
  20. $this->filename = dirname(__FILE__).self::C_FILE.$this->dir.$key.self::EXT; 
  21. if(file_exists($this->filename)){ 
  22. $res = $this->get($key); 
  23. if(md5($res) == md5(json_encode($data) ) ){ 
  24. return true; 
  25. if(!is_dir(dirname($this->filename))){ 
  26. mkdir(dirname($this->filename),0777); 
  27.  
  28. $source = fopen($this->filename,'w+'); 
  29. fwrite($source,json_encode($data)); 
  30. fclose($source); 
  31.  
  32. /** 
  33. * @desc 获取文件 
  34. * @param string $key 文件名 
  35. */ 
  36. public function get($key){ 
  37. //$filename = dirname(__FILE__).self::C_FILE.$this->dir.$key.self::EXT; 
  38. if(!file_exists($this->filename)){ 
  39. return '缓存文件已经不存在'
  40. }else
  41. $res = file_get_contents($this->filename); 
  42. return $res
  43. /** 
  44. * @desc 删除文件 
  45. * @param string $key 文件名 
  46. */ 
  47. public function del($key){ 
  48. unlink($this->filename); 
  49.  
  50.  
  51. $data = array('name'=>'song','age'=>20,'sex'=>'man','favority'=>array('apple','banana')); 
  52. $cache = new Cache(); 
  53. $cache->set('cache',$data); 
  54. //$cache->get('cache'); 
  55. //$cache->del('cache'); 

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