php缓存读写

下面的一段代码是,把数据写入缓存和读取缓存数据,然后给缓存一个时间,在缓存生存时间内,我们使用缓存的数据,否则更新缓存。



<?php

class File{
private $_dir;
public function __construct(){
//dirname(__FILE__)当前目录
$this->_dir=dirname(__FILE__);
}
const EXT ='.txt';
public function cacheData($key,$value ='',$cacheTime = 0){
$filename =$this->_dir."/".$key.self::EXT;
echo $filename;
if ($value!==''){ //将value写入缓存
//如果value是null,那么把缓存删掉。
if (is_null($value)){
return @unlink($filename);
}
$dir =dir($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 = substr($contents, 0,11);
$value = substr($contents, 11);
if ($cacheTime+filemtime($filename) > time()){
//如果缓存时间过期,从数据库中组织数据,写入缓存中。
}

return json_decode($value,true);

}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值