网络编程
位置:首页>> 网络编程>> php编程>> ThinkPHP文件缓存类代码分享

ThinkPHP文件缓存类代码分享

作者:hebedich  发布时间:2024-05-22 10:02:11 

标签:ThinkPHP,文件缓存类

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


<?php
 /**
  * @desc 文件缓存
  */
 class Cache{
   const C_FILE = '/Runtime/';
   private $dir = '';
   const EXT = '.tpl';
   private $filename = '';
   public function __construct($dir = ''){
     $this->dir = $dir;

}
   /**
    *  @desc 设置文件缓存
    *  @param string $key 文件名
    *  @param unkonw $data 缓存数据
    *  @param int  $expire 过期时间
    */
   public function set($key,$data,$expire = 0){
     $this->filename =   dirname(__FILE__).self::C_FILE.$this->dir.$key.self::EXT;
     if(file_exists($this->filename)){
       $res = $this->get($key);
       if(md5($res) == md5(json_encode($data) ) ){
         return true;
       }
     }
     if(!is_dir(dirname($this->filename))){
       mkdir(dirname($this->filename),0777);
     }

$source = fopen($this->filename,'w+');
     fwrite($source,json_encode($data));
     fclose($source);
   }

/**
    *  @desc 获取文件
    * @param string $key 文件名
    */
   public function get($key){
     //$filename = dirname(__FILE__).self::C_FILE.$this->dir.$key.self::EXT;
     if(!file_exists($this->filename)){
       return '缓存文件已经不存在';
     }else{
       $res = file_get_contents($this->filename);
     }
     return $res;
   }
   /**
    *  @desc 删除文件
    * @param string $key 文件名
    */
   public function del($key){
     unlink($this->filename);
   }

}

$data = array('name'=>'song','age'=>20,'sex'=>'man','favority'=>array('apple','banana'));
 $cache = new Cache();
 $cache->set('cache',$data);
 //$cache->get('cache');
 //$cache->del('cache');
0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com