您的位置:首页 > 编程语言 > PHP开发

php 文件缓存

2016-01-07 11:02 609 查看
class fileCache{

private $cachePath;
private $cacheFileName;
private $cacheFilePath;
private $expiresTime;
private $data="";

public function fileCache($cacheTime=10,$cachePath="cache/"){
$this->expiresTime=$cacheTime;
$this->cachePath=$cachePath;
$this->createCacheName();
}

public function setData($data){
$this->data=$data;
}

public function createCacheName(){
$url=$_SERVER['REQUEST_SCHEME']."://".$_SERVER['SERVER_NAME'].":".$_SERVER['SERVER_PORT'].$_SERVER['REQUEST_URI'];
$this->cacheFileName=md5($url);
$this->cacheFilePath=$this->cachePath.$this->cacheFileName.".php";
}

public function buildCache(){
ob_start();
echo $this->data;
$content=ob_get_contents();
ob_flush();
ob_clean();
file_put_contents($this->cacheFilePath, $content);
}

public function readCache(){
$cacheFile=$this->cacheFilePath;
if(file_exists($cacheFile)){
include $cacheFile;
}else{
return false;
}
return true;
}

public function cacheTime(){
$cacheFile=$this->cacheFilePath;
if(!file_exists($cacheFile)){
return true;
}elseif(fileatime($cacheFile)+$this->expiresTime<=time()){
return true;
}
return false;
}

}

/////
$cache=new fileCache(2, "cache/");
if($cache->cacheTime()){
$cache->setData("hello world !");
$cache->buildCache();
}else{
$cache->readCache();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: