<?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 ))
{
if (! mkdir ( $path, 0777,true)) 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);

最新文章

  1. Java方法trim()小记
  2. 详谈Hibernate框架关系映射!
  3. Entity Framework4.0 (一)概述(EF4 的Database First方法)
  4. 使用Apache ab进行http性能测试
  5. 浅析DES与AES、RSA三种典型加密算法的比较
  6. mysql中int(10)与int(11)有什么区别吗?
  7. centOS7 mini配置linux服务器(四) 配置jdk
  8. 简单模拟struts2及struts2的处理流程介绍
  9. Hangfire使用ApplicationInsigts监控
  10. CSS3 Gradient 渐变还能这么玩
  11. Linux Namespace : 简介
  12. Codeforces Round #486 (Div. 3) D. Points and Powers of Two
  13. 【代码审计】XYHCMS V3.5文件上传漏洞分析
  14. List&lt;T&gt;Distinct 过滤
  15. 解决 Attempting to destroy the window while drawing!
  16. html判断当前页面是否在iframe中/顶级document中
  17. Java Web Service 学习笔记
  18. 使用xmlHttprequest有感
  19. UISearchBar和UISearchDisplayController
  20. 真实赛车3,FERRARI之魂不买FERRARI 599 GTO可以解锁顶点系列。

热门文章

  1. java springmvc+bui+bootstrap后台管理系统搭建
  2. 借助csv用PHP生成excel文件
  3. 对抗栈帧地址随机化/ASLR的两种思路和一些技巧
  4. hdu 1011 Starship Troopers(树形DP入门)
  5. Android 开发笔记___登陆app
  6. JAVA 的关键字 、
  7. Java中的Redis应用
  8. Docker安装和卸载
  9. 2017年当下最值得你关注的前端开发框架,不知道你就OUT了!
  10. 一致性hash算法以及其在分布式系统中的应用(转)