静态缓存处理

本文介绍了一种基于PHP的简单缓存实现方法,通过自定义函数S实现了缓存的存储、读取及删除功能,并考虑了缓存的有效期管理。
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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值