简单的php缓存类分享 php缓存机制
更新时间:2014年01月22日 09:37:37 作者:
这篇文章主要介绍了一个php缓存类,文件名使用md5加密,大家参考使用吧
复制代码 代码如下:
<?php
class Cache
{
private $dir = "data/cache/";//定义缓存目录
private $key='c_a_sss'; // 文件名md5加密密钥
function set_dir($dirpath)
{
$this->dir=$dirpath;
$this->make_dir($this->dir);
}
function read($key,$minutes=1)
{
$filename=$this->get_filename($key);
if($datas = @file_get_contents($filename))
{
$datas = unserialize($datas);
if(time() - $datas['time'] < $minutes*60)
{
return $datas['data'];
}
}
return false;
}
function write($key,$data)
{
$filename=$this->get_filename($key);
if($handle = fopen($filename,'w+'))
{
$datas = array('data'=>$data,'time'=>time());
flock($handle,LOCK_EX);
$rs = fputs($handle,serialize($datas));
flock($handle,LOCK_UN);
fclose($handle);
if($rs!==false){return true; }
}
return false;
}
function clear_all()
{
$dir=$this->dir;
$this->del_file($dir);
}
private function get_filename($key)
{
return $this->dir.$key.'_'.md5($key.$this->key);
}
private function make_dir($path)
{
if (! file_exists ( $path ))
{
$this->make_dir ( dirname ( $path ) );
if (! mkdir ( $path, 0777 ))
die ( '无法创建缓存文件夹' . $path );
}
}
private function del_file($dir)
{
if (is_dir($dir))
{
$dh=opendir($dir);//打开目录 //列出目录中的所有文件并去掉 . 和 ..
while (false !== ( $file = readdir ($dh))) {
if($file!="." && $file!="..") {
$fullpath=$dir."/".$file;
if(!is_dir($fullpath)) {
unlink($fullpath);
} else {
$this->del_file($fullpath);
}
}
}
closedir($dh);
}
}
}
$cache = new cache();
$cache->set_dir('data/cache_dir/');
$data=$cache->read('sys',1);
if(empty($data))
{
$data=array('aa'=>1111,'bb'=>2222,'date'=>date('Y-m-d H:i:s'));
$cache->write('sys',$data);
}
print_r($data);
您可能感兴趣的文章:
- 在localStorage中存储对象数组并读取的方法
- 详解JavaScript中localStorage使用要点
- android webview 中localStorage无效的解决方法
- JS localStorage实现本地缓存的方法
- 使用jquery读取html5 localstorage的值的方法
- Android使用缓存机制实现文件下载及异步请求图片加三级缓存
- 深入理解Ruby on Rails中的缓存机制
- PHP缓存机制Output Control详解
- jQuery的缓存机制浅析
- 移动端使用localStorage缓存Js和css文的方法(web开发)
- localStorage的黑科技-js和css缓存机制
相关文章
利用php实现一周之内自动登录存储机制(cookie、session、localStorage)
本篇文章主要介绍了利用php实现一周之内自动登录存储机制(cookie、session、localStorage),可以实现一周之内免费登陆,感兴趣的小伙伴们可以参考一下。2016-10-10
PHP 中提示undefined index如何解决(多种方法)
这篇文章主要介绍了PHP 中提示undefined index如何解决(多种方法)的相关资料,需要的朋友可以参考下2016-03-03
PHP7使用ODBC连接SQL Server2008 R2数据库示例【基于thinkPHP5.1框架】
这篇文章主要介绍了PHP7使用ODBC连接SQL Server2008 R2数据库,结合实例形式分析了基于thinkPHP5.1框架使用ODBC连接SQL Server2008数据库相关操作技巧,需要的朋友可以参考下2019-05-05


最新评论