<?php 
ob_start(); 
/** 
* @author 何名慧 
* @copyright 2009-3-13 
* @param string $cache_folder 缓文件夹 
* @param int $cache_create_time 文件缓存时间 
* @example $cache=new Esj_Cache('./_cache',100) 
* @example $cache->read_cache() 读取缓存并输出 
* @example $cache->creatre_cache() 创建缓存文件(放在文件未尾) 
* @example $cache->list_file() 返回所有缓存文件列表 
* @example $cache->del_file() 删除所有缓存文件 
*/ 
 
class Esj_Cache{ 
private $cache_folder=null;//cacher文件夹 
private $wroot_dir=null;//站点目录 
private $cacher_create_time=null;//cacher文件的建立时间 
 
public function __construct($cache_foldername,$cacher_time=100) 
{ 
ob_start(); 
$this->wroot_dir=$_SERVER['DOCUMENT_ROOT']; 
$this->cache_folder=$cache_foldername; 
$this->cacher_create_time=$cacher_time; 
} 
 
public function read_cache() 
{ 
try { 
if(self::create_folder($this->cache_folder)) 
{ 
self::get_cache();//输出缓存文件信息 
}else 
{ 
echo "缓存文件夹创建失败!"; 
return false; 
} 
 
}catch(Exception $e){ 
echo $e; 
return false; 
} 
} 
 
//测试缓存文件夹是否存在 
private function exist_folder($foler) 
{ 
if(file_exists($this->wroot_dir."https://www.jb51.net/".$foler)){ 
return true; 
}else { 
return false; 
} 
} 
 
//建立一个新的文件夹 
private function create_folder($foler) 
{ 
if(!self::exist_folder($foler)) 
{ 
try{ 
mkdir($this->wroot_dir."https://www.jb51.net/".$foler,0777); 
chmod($this->wroot_dir."https://www.jb51.net/".$foler,0777); 
return true; 
}catch (Exception $e) 
{ 
self::get_cache();//输出缓存 
return false; 
} 
return false; 
} 
else 
{ 
return true; 
} 
} 
 
//读取缓存文件 
private function get_cache() 
{ 
$file_name=self::get_filename(); 
if (file_exists($file_name)&&((filemtime($file_name)+$this->cacher_create_time) > time())) 
{ 
$content=file_get_contents($file_name); 
if($content) 
{ 
echo $content; 
ob_end_flush(); 
exit; 
}else 
{ 
echo "文件读取失败"; 
exit; 
 
} 
 
} 
} 
 
//返回文件的名字 
private function get_filename() 
{ 
$filename=$file_name=$this->wroot_dir.'https://www.jb51.net/'.$this->cache_folder.'https://www.jb51.net/'.md5($_SERVER['QUERY_STRING']).".html"; 
return $filename; 
} 
 
//建立缓存文件 
public function create_cache() 
{ 
$filename=self::get_filename(); 
if($filename!="") 
{ 
try{ 
file_put_contents($filename,ob_get_contents()); 
return true; 
}catch (Exception $e) 
{ 
echo "写缓存失败:".$e; 
exit(); 
} 
return true; 
} 
} 
 
// 取得缓存中的所有文件 
public function list_file() 
{ 
$path=$this->cache_folder; 
if ($handle = opendir($path)) { 
while (false !== ($file = readdir($handle))) { 
if($file!="." && $file!="..") { 
$path1=$path."https://www.jb51.net/".$file; 
if(file_exists($path1)) 
{ 
$result[]=$file; 
} 
} 
} 
closedir($handle); 
} 
return $result; 
} 
 
//删除缓存中的所有文件 
public function del_file() 
{ 
$path=$this->cache_folder; 
if ($handle = opendir($path)) { 
while (false !== ($file = readdir($handle))) { 
if($file!="." && $file!="..") { 
$path1=$path."https://www.jb51.net/".$file; 
if(file_exists($path1)) 
{ 
unlink($path1); 
} 
} 
} 
closedir($handle); 
} 
return true; 
} 
 
} 
 
?>
php页面缓存方法小结(2)
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:http://www.heiqu.com/3be0ab6e638caa6d22b44bc458505a29.html
