ThinkPHP file caching code sharing
The file cache code taken from ThinkPHP, there is not much nonsense here, let's read the annotation by yourself.
?
|
<🎜>/**<🎜> <🎜>* @desc file caching<🎜> <🎜>*/<🎜> <🎜>class Cache{<🎜> <🎜>const C_FILE = '/Runtime/';<🎜> <🎜>private $dir = '';<🎜> <🎜>const EXT = '.tpl';<🎜> <🎜>private $filename = '';<🎜> <🎜>public function __construct($dir = ''){<🎜> <🎜>$this->dir = $dir; } /** * @desc Set file cache * @param string $key file name * @param unkonw $data cache data * @param int $expire expiration time */ 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 Get file * @param string $key file name */ public function get($key){ //$filename = dirname(__FILE__).self::C_FILE.$this->dir.$key.self::EXT; if(!file_exists($this->filename)){ return 'The cache file no longer exists'; }else{ $res = file_get_contents($this->filename); } return $res; } /** * @desc delete file * @param string $key file name */ 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'); |