Welcome 微信登录

首页 / 网页编程 / PHP / 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程序设计有所帮助。