function S($key = '', $value = '', $time = 0){
// 定义缓存目录
$cacheDir = 'data/cache/';
// 定义缓存文件名
$fileName = $cacheDir . $key . '.txt';
// 如果$value === NULL 删除缓存
if ($value === NULL) return @unlink($fileName);
// 如果$value不为空 写入缓存
if ($value) {
// 创建缓存目录
is_dir($cacheDir) || mkdir($cacheDir);
// 生成缓存时间
$time = sprintf('%011d', $time);
// 生成缓存文件
return file_put_contents($fileName, $time . json_encode($value));
}
// 如果$value == '' 读取缓存
if ($value == '') {
// 判断缓存文件是否存在
if (!is_file($fileName)) return false;
// 获取缓存数据
$data = file_get_contents($fileName);
// 获取缓存时间
$time = (int)substr($data, 0,11);
// 判断缓存时间是否失效 (文件生成时间 + 缓存时间) 是否小于当前时间
if ($time !=0 && (fileatime($fileName) + $time) < time()) {
// 缓存失效 删除缓存文件
@unlink($fileName);
return false;
}
// 获取缓存真实数据
$cacheData = json_decode(substr($data, 11), true);
return $cacheData;
}
}
S('category', $category, $time); 写缓存
S('category') 读缓存
转载于:https://my.oschina.net/bibo/blog/336487