PHP实现静态缓存生成,获取缓存,删除缓存
这是一个PHP简单缓存类,可以进行生成缓存,获取缓存,删除缓存。可以设置缓存时间。可以用于一些平时项目开发中,需要短暂存储缓存文件的操作,我把重要的地方都加了注释,方便新手可以清楚的知道是怎么的实现原理。可以让自己快速的掌握PHP的一些基本的缓存处理思维。
<?php /** * PHP文件缓存操作 * 生成缓存cacheData('test',array(1,2,3)) * 获取缓存cacheData('test') * 删除缓存cacheData('test',null) */ class File { private $_dir;/*文件路径*/ const EXT = '.txt';/*缓存后缀名*/ public function __construct() { $this->_dir = dirname(__FILE__) . '/cache/'; } /** * [cacheData 缓存操作,生成缓存,获取缓存,删除缓存] * @param [type] $key [缓存文件名称] * @param string $value [缓存数据] * @param integer $cacheTime [缓存存活时间] * @return [type] [description] */ public function cacheData($key, $value = '', $cacheTime = 0) { $filename = $this->_dir . $key . self::EXT; if($value !== '') { /*将value值写入缓存*/ if(is_null($value)) {/*如果传值为null,清除缓存*/ return @unlink($filename); } $dir = dirname($filename); if(!is_dir($dir)) {/*判断路径时候存在,不存在则创建*/ mkdir($dir, 0777); } $cacheTime = sprintf('%011d', $cacheTime);/*记录缓存存活时间*/ return file_put_contents($filename,$cacheTime . json_encode($value)); } if(!is_file($filename)) {/*缓存不错在*/ return FALSE; } $contents = file_get_contents($filename); $cacheTime = (int)substr($contents, 0 ,11);/*缓存时间*/ $value = substr($contents, 11);/*缓存数据*/ if($cacheTime !=0 && ($cacheTime + filemtime($filename) < time())) {/*判读缓存时候过期*/ unlink($filename); return FALSE; } return json_decode($value, true); } } $file = new File(); $arr = array(1,2,3); // echo $file->cacheData('test',$arr,8); // var_dump($file->cacheData('test'));
本文作者: Liaodeity
本文链接: https://www.jianbaizhan.com/article/257
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!