您当前的位置: 首页 > 网站编程 > PHP教程 > 简单的php缓存类分享

简单的php缓存类分享

作者:不详 来源:网络 发布时间: 2014-08-07 18:16 点击:
这篇文章主要介绍了一个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($th

简单的php缓存类分享

  这篇文章主要介绍了一个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);
分享到:
本文"简单的php缓存类分享"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4