当前位置:首页 > CMS教程 > Thinkphp > 列表

ThinkPHP文件缓存类代码分享

发布:smiling 来源: PHP粉丝网  添加日期:2021-05-22 21:47:34 浏览: 评论:0 

本文给大家分享的是取自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');

Tags: ThinkPHP文件缓存类

分享到: