生成静态文件, txt格式
静态缓存设置失效时间
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/**
*生成、获取、删除
*
*/
class File {
private $_dir;
const EXT = '.txt';
public function __construct() {
//默认放到当前文件目录下的files目录
$this->_dir = dirname(__FILE__) . '/files/';
}
/*
*@param key 缓存文件的文件名
*@param value 缓存数据
*/
public function cacheData($key, $value = '', $cacheTime = 0) {
$filename = $this->_dir . $key . self::EXT;
if($value !== '') { // 将value值写入缓存
if(is_null($value)) {//value为空,删除文件
return @unlink($filename);
}
$dir = dirname($filename);//获得目录
if(!is_dir($dir)) {//判断目录是否存在
mkdir($dir, 0777);//创建目录
}
//cacheTime 缓存失效时间
$cacheTime = sprintf('%011d', $cacheTime);
//将缓存失效时间一起写入
return file_put_contents($filename,$cacheTime . json_encode($value));
//filename,要写入的文件 后面的是要写入的值(要求字符串格式)
}
//文件不存在
if(!is_file($filename)) {
return FALSE;
}
//获取文件的内容
$contents = file_get_contents($filename);
//获取缓存失效时间 00000001200
//substr()获得字符串的子串
$cacheTime = (int)substr($contents, 0 ,11);
$value = substr($contents, 11);
//缓存失效时间+文件修改时间<当前时间 ,删除, 返回false
//cacheTime默认设置0,永久有效
if($cacheTime !=0 && ($cacheTime + filemtime($filename) < time())) {
unlink($filename);
return FALSE;
}
return json_decode($value, true);
}
}
$file = new File();
Title:静态缓存设置失效时间
Author:Louy
Created:2017-01-11, 00:00:00
Updated:2017-06-15, 00:48:02
Full URL:https://it80.github.io/2017/01/11/2017-6-14静态缓存设置失效时间/
License: "CC BY-NC-SA 4.0" Keep Link & Author if Distribute.