加入收藏 | 设为首页 | 会员中心 | 我要投稿 鄂州站长网 (https://www.0711zz.com.cn/)- 云通信、区块链、物联平台、操作系统、高性能计算!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

一个简单至极的PHP缓存类代码

发布时间:2022-06-21 09:25:00 所属栏目:PHP教程 来源:互联网
导读:这篇文章和大家分享了一个简单至极的PHP缓存类代码,缓存的应用对于php项目的开发来说尤为重要,需要的朋友可以参考下。 网上关于 PHP 缓存类的资料很多,不过这个类应该是我见过功能满足需求,但又无比简洁的一个。废话不多说,直接看代码吧! 使用说明: 1
  这篇文章和大家分享了一个简单至极的PHP缓存类代码,缓存的应用对于php项目的开发来说尤为重要,需要的朋友可以参考下。
 
  网上关于 PHP 缓存类的资料很多,不过这个类应该是我见过功能满足需求,但又无比简洁的一个。废话不多说,直接看代码吧!
 
  使用说明:
 
  1、实例化
 
  $cache = new Cache();
 
  2、设置缓存时间和缓存目录
 
  $cache = new Cache(60, '/any_other_path/');
 
  第一个参数是缓存秒数,第二个参数是缓存路径,根据需要配置。
 
  默认情况下,缓存时间是 3600 秒,缓存目录是 cache/
 
  3、读取缓存
 
  $value = $cache->get('data_key');
 
  4、写入缓存
 
  $value = $cache->put('data_key', 'data_value');
 
  完整实例:
 
  $cache = new Cache();  
     
  //从缓存从读取键值 $key 的数据  
  $values = $cache->get($key);  
     
  //如果没有缓存数据  
  if ($values == false) {  
  //insert code here...  
  //写入键值 $key 的数据  
  $cache->put($key, $values);  
  } else {  
  //insert code here...  
  }
  Cache.class.php
 
  <?php  
  class Cache {  
  private $cache_path;//path for the cache  
  private $cache_expire;//seconds that the cache expires  
     
  //cache constructor, optional expiring time and cache path  
  public function Cache($exp_time=3600,$path="cache/"){  
  $this->cache_expire=$exp_time;  
  $this->cache_path=$path;  
  }  
     
  //returns the filename for the cache  
  private function fileName($key){  
  return $this->cache_path.md5($key);  
  }  
     
  //creates new cache files with the given data, $key== name of the cache, data the info/values to store  
  public function put($key, $data){  
  $values = serialize($data);  
  $filename = $this->fileName($key);  
  $file = fopen($filename, 'w');  
  if ($file){//able to create the file  
  fwrite($file, $values);  
  fclose($file);  
  }  
  else return false;  
  }  
     
  //returns cache for the given key  
  public function get($key){  
  $filename = $this->fileName($key);  
  if (!file_exists($filename) || !is_readable($filename)){//can't read the cache  
  return false;  
  }  
  if ( time() < (filemtime($filename) + $this->cache_expire) ) {//cache for the key not expired  
  $file = fopen($filename, "r");// read data file  
  if ($file){//able to open the file  
  $data = fread($file, filesize($filename));  
  fclose($file);  
  return unserialize($data);//return the values  
  }  
  else return false;  
  }  
  else return false;//was expired you need to create new  
  }  
  }  
  ?>
  相信大家一定会喜欢这个简洁的php缓存类代码,希望对大家的学习有所帮助。

(编辑:鄂州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读