<?php
class File{
//设置缓存目录
private $_dir;
//设置文件后缀
const EXT=".txt";
public function __construct(){
$this->_dir=dirname(__FILE__).'/files/';
}
/**
* 函数功能:生成缓存(把数据写道指定的文件中,当$value有值传入的时候)
* 获取缓存(从缓存文件里读数据,当$value为空的时候)
* 删除缓存(删除缓存文件 ,当$value为 NULL)
* @param $key 相当于文件名
* @param string $value 文件里要存放的值
* @param string $path 文件路径
* @return
*/
public function cacheData($key,$value="",$path=""){
//组装文件名(包含缓存目录,目录下的文件地址,文件名称,以及文件后缀)
$filename=$this->_dir.$path.$key.self::EXT;
//当value值不为空时,注意这里是强等
//当是两个等于时,null==""是真的
if($value!==""){
//当$value为 Null 表示把这个缓存给删了
if(is_null($value)){
//删除文件,并过滤警告
return @unlink($filename);
}
//$value不为null 也不为"" 表示要生成缓存
//获取要缓存的文件目录,看目录存不存在
$dir=dirname($filename);
//当目录不存在时,手动创建目录
if(!is_dir($dir)){
mkdir($dir,0777);
}
//把数据写入文件中,注意要把value值转换成字符串格式
//这里用的是 json_encode()把数据转换成json格式的字符串
//这里的file_put_contents会自动创建一个文件
//文件写入成功,返回字节数。不成功返回false;
return file_put_contents($filename,json_encode($value));
}
//下面是当$value值为空时,表示我现在要获取缓存
//当要获取的文件不存在的时候
if(!is_file($filename)){
return FALSE;
}else{
//要获取的文件存在,取出文件,并json_decode解码
//true 表示返回原来的形式,不加true表示返回对象形式
return json_decode(file_get_contents($filename),true);
}
}
}
?>
静态缓存类
最新推荐文章于 2019-08-12 09:44:58 发布