静态缓存是保存在磁盘上的静态文件,用php生成数据放入静态文件中:以下是对静态缓存,创建,读取,删除的操作类/**
* php操作缓存:生成缓存,获取缓存,删除缓存
*/
class File
{
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);
}
//value只能是字符串形式,不能传递数组,对象,如果写入成功返回的是数据字节数,如果失败返回false
return file_put_contents($filename, json_encode($value));
}
//获取缓存
if (!is_file($filename)) {
return FALSE;
} else {
return json_decode(file_get_contents($filename),true);
}
}
}
调用方式:require_once('./file.php');
$data = array(
'id' => 1,
'name' => 'donglianyou',
'type' => array(4,5,6),
'test' => array(1,34,65=>array(123,'good'),),
);
//Response::show(200, 'success', $data, 'json');
$file = new File();
//写入缓存到文件中:
if ($file->cacheData('array_cache',$data)) {
echo "success";
} else {
echo "error";
}
//读取缓存:
if ($file->cacheData('array_cache')) {
echo "
";
var_dump($file->cacheData('array_cache'));
echo "success";
} else {
echo "error";
}
//删除缓存:
if ($file->cacheData('array_cache',null)) {
echo "success";
} else {
echo "error";
}