This article mainly introduces the usage of php file cache class, and analyzes the definition and function of php file cache class in detail in the form of examples. and specific usage techniques, which are of great practical value. Friends who need them can refer to them
The example in this article describes the usage of php file cache class. Share it with everyone for your reference. The details are as follows:
?
|
<🎜>/**<🎜> <🎜>* Simple file caching 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 |
Usage examples are as follows:
?
2 3
|
$cache = new XZCache();
$key = 'global';
$value = $GLOBALS;
$cache->saveCache($key, $value);
$result = $cache->getCache($key); |