php文件缓存类用法实例分析

本文实例讲述了php文件缓存用法。分享给大家供大家参考。具体如下:

  <?php  /**   * 简单的文件缓存类   *   */  class XZCache{   // default cache time one hour   var $cache_time = 3600;   // default cache dir   var $cache_dir = './cache';   public function __construct($cache_dir=null, $cache_time=null){    $this->cache_dir = isset($cache_dir) ? $cache_dir : $this->cache_dir;    $this->cache_time = isset($cache_time) ? $cache_time : $this->cache_time;   }   public function saveCache ($key, $value){    if (is_dir($this->cache_dir)){     $cache_file = $this->cache_dir . '/xzcache_' . md5($key);     $timedif = @(time() - filemtime($cache_file));     if ($timedif >= $this->cache_time) {      // cached file is too old, create new      $serialized = serialize($value);      if ($f = @fopen($cache_file, 'w')) {       fwrite ($f, $serialized, strlen($serialized));       fclose($f);      }     }     $result = 1;    }else{     echo "Error:dir is not exist.";     $result = 0;    }    return $result;   }   /**    * @return array     *   0 no cache    *    1 cached    *    2 overdue    */   public function getCache ($key) {    $cache_file = $this->cache_dir . '/xzcache_' . md5($key);    if (is_dir($this->cache_dir) && is_file($cache_file)) {     $timedif = @(time() - filemtime($cache_file));     if ($timedif >= $this->cache_time) {      $result['cached'] = 2;     }else{      // cached file is fresh enough, return cached array      $result['value'] = unserialize(file_get_contents($cache_file));      $result['cached'] = 1;     }    }else {     echo "Error:no cache";     $result['cached'] = 0;    }    return $result;   }  } //end of class

用法示例如下:

  $cache = new XZCache();  $key = 'global';  $value = $GLOBALS;  $cache->saveCache($key, $value);  $result = $cache->getCache($key);  var_dump($result);

希望本文所述对大家的php程序设计有所帮助。

php文件缓存类用法实例分析

郑重声明:本网站发布的内容(图片、视频和文字)以及用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服

发表评论

登录后才能评论