Heim >php教程 >php手册 >php文件缓存类

php文件缓存类

WBOY
WBOYOriginal
2016-06-06 19:32:311019Durchsuche

php文件缓存 PHP ?php/** * 简单的文件缓存类 usage $cache = new XZCache();$key = 'global';$value = $GLOBALS;$cache-saveCache($key, $value);$result = $cache-getCache($key);var_dump($result); * */ class XZCache{// default cache time one hourvar

php文件缓存 PHP
<?php
/**
 * 简单的文件缓存类
 
 usage
 
	$cache = new XZCache();
	$key = 'global';
	$value = $GLOBALS;
	$cache->saveCache($key, $value);
	$result = $cache->getCache($key);
	var_dump($result);
	
 *
 */
 
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
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn