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 许可协议。转载请注明出处!