/** * Simple File Cache class * */ 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 |