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

 2025-01-15  阅读 481  评论 8  点赞 100

摘要:本文实例讲述了php文件缓存类用法。分享给大家供大家参考。具体如下: 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){

本文实例讲述了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程序设计有所帮助。


标签:phpphp教程

评论列表:

  •   xiedaimade
     发布于 3天前回复该评论
  • 写的很不错,学到了!
  •   tg7187037109
     发布于 1天前回复该评论
  • 写的很不错,学到了!
显示更多评论

发表评论:

管理员

承接各种程序开发,外贸网站代运营,外贸网站建设等项目
  • 内容2460
  • 积分67666
  • 金币86666

Copyright © 2024 LS'Blog-保定PHP程序员老宋个人博客 Inc. 保留所有权利。 Powered by LS'blog 3.0.3

页面耗时0.0289秒, 内存占用1.94 MB, 访问数据库31次

冀ICP备19034377号