用php封装一个文件缓存类
时间: 2024-02-01 14:04:18 浏览: 50
以下是一个简单的文件缓存类的PHP封装:
```
class FileCache {
private $cache_dir;
public function __construct($cache_dir) {
$this->cache_dir = $cache_dir;
if (!is_dir($this->cache_dir)) {
mkdir($this->cache_dir, 0777, true);
}
}
public function set($key, $value, $expire_time = 0) {
$filename = $this->getFilename($key);
$data = array(
'value' => $value,
'expire_time' => $expire_time > 0 ? time() + $expire_time : 0
);
$data = serialize($data);
file_put_contents($filename, $data);
}
public function get($key) {
$filename = $this->getFilename($key);
if (file_exists($filename)) {
$data = file_get_contents($filename);
$data = unserialize($data);
if ($data['expire_time'] == 0 || $data['expire_time'] > time()) {
return $data['value'];
} else {
unlink($filename);
}
}
return null;
}
private function getFilename($key) {
return $this->cache_dir . '/' . md5($key);
}
}
```
使用方法:
```
$cache = new FileCache('/path/to/cache/dir');
$cache->set('key1', 'value1', 3600);
$value1 = $cache->get('key1');
```
这个类的实现比较简单,它将数据序列化后存储到文件中,然后读取时反序列化即可。同时,它支持设置过期时间,过期后会自动删除缓存文件。
阅读全文