PHP利用Filesystem函数实现操作缓存(生成,获取,删除操作)

时间:2022-04-05 07:52:06
 <?php
class File{
//$key 相当于缓存文件的文件名
//$value 缓存数据
private $_dir;//定义默认路径
const EXT='.txt';
public function __construct(){
$this->_dir=dirname(__FILE__).'/files/';
}
public function cacheData($key,$value="",$path=""){
$filename=$this->_dir .$path .$key .self::EXT;
if($value!==""){//将$value值写入缓存
if(is_null($value)){
return @unlink($filename);//删除缓存,@屏蔽错误信息的输出的作用
}
$dir=dirname($filename);
if(!is_dir($dir)){
mkdir($dir,0777);
}
return file_put_contents($filename,json_encode($value));
}
//获取缓存
if(!is_file($filename)){
return false;
}else{
return json_decode(file_get_contents($filename),true);
}
}
}
?>
<?php
require_once("file.php");
$data=array(
'id'=>1,
'name'=>'新浪',
'type'=>array(4,5,6),
'test'=>array(1,45,67=>array(123,'tsysa'),),
);
$file=new File();
//index_mk_cache 为缓存文件名
//$data 为缓存数据
if($file->cacheData('index_mk_cache',$data)){//当$data换为null时,实现输出缓存文件的效果
echo "success";
}else{
echo"error";
}
?>