php教程

超轻量级php框架startmvc

ThinkPHP文件缓存类代码分享

更新时间:2020-03-04 00:54 作者:startmvc
取自ThinkPHP的文件缓存类代码,这里就不多废话了,小伙伴们自己看注释吧。<?php/***@de

取自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');