热烈祝贺台州朗动科技的站长论坛隆重上线!(2012-05-28)    热烈庆祝伟大的祖国60周年生日 点击进来我们一起为她祝福吧(2009-09-26)    站长论坛禁止发布广告,一经发现立即删除。谢谢各位合作!.(2009-08-08)    热烈祝贺台州网址导航全面升级,全新版本上线!希望各位一如既往地支持台州网址导航的发展.(2009-03-28)    台州站长论坛恭祝各位新年快乐,牛年行大运!(2009-01-24)    台州Link正式更名为台州网址导航,专业做以台州网址为主的网址导航!(2008-05-23)    热烈祝贺台州Link资讯改名为中国站长资讯!希望在以后日子里得到大家的大力支持和帮助!(2008-04-10)    热烈祝贺台州Link论坛改名为台州站长论坛!希望大家继续支持和鼓励!(2008-04-10)    台州站长论坛原[社会琐碎]版块更名为[生活百科]版块!(2007-09-05)    特此通知:新台州站长论坛的数据信息全部升级成功!">特此通知:新台州站长论坛的数据信息全部升级成功!(2007-09-01)    台州站长论坛对未通过验证的会员进行合理的清除,请您谅解(2007-08-30)    台州网址导航|上网导航诚邀世界各地的网站友情链接和友谊联盟,共同引领网站导航、前进!(2007-08-30)    禁止发广告之类的帖,已发现立即删除!(2007-08-30)    希望各位上传与下载有用资源和最新信息(2007-08-30)    热烈祝贺台州站长论坛全面升级成功,全新上线!(2007-08-30)    
便民网址导航,轻松网上冲浪。
台州维博网络专业开发网站门户平台系统
您当前的位置: 首页 » PHP/Perl编程 » php缓存类

php缓存类

论坛链接
  • php缓存类
  • 发布时间:2007-12-12 19:03:39    浏览数:4824    发布者:superadmin    设置字体【   
<?
/*
程序设计: 林建炫(飘枫设计室)
made in 陆丰 by 2007-03-03 中午
QQ: 5818500
Email: [email]linzhenxuan@163.com[/email]
尊重他人也尊重自己!请勿删除该版权信息
如果你使用、修改请保留该信息!
类名称: 缓存使用类
用途: 全局变量、模版
不足地方: 性能没内存共享快!
*/
Class Cls_cache
{
var $dir='cache';//缓存目录
var $auto = true;//是否自动删除过时缓寸,如果缓存文件 大、多 不建议这样做
var $file_list;//文件名
var $dir_name;//目录绝对路径;
var $code = "<?php exit;?>";//加入的代码
var $cache_time = "3600";//缓存时间,默认1小时
Function __construct()
{
//class start;
//建立目录
$dir = $this->dir;
$dir = explode("/",$dir);
foreach($dir as $a)
{
if($i==0)
{
$temp .= $a;
}
else
{
$temp .= "/".$a;
}
if(!is_dir($temp))
{
mkdir($temp);
};
$i++;
}
//自动清除过期缓存文件
if($this->auto==true){$this->auto();}
//读取目录文件
$this->read_file();
}
Function read_file()
{//得到格式 fil1|fil2|fil3|fil4....
$dir_name = realpath($this->dir);
$this->dir_name = $dir_name;
$dir = opendir($dir_name);//打开目录
while ($file_name = readdir($dir))
{
if(($file_name!=".")&&($file_name!=".."))
{
$file_list .=$file_name."|";
}
}
$file_list = substr($file_list,0,(strlen($file_list)-1));
closedir($dir);
$this->file_list = $file_list;
return $file_list;
}
Function read($strname)
{//read('index.php?page=1');
$strname = md5(trim($strname));
$list = $this->file_list;
$re = "/(".$strname.")_([0-9]*)_([0-9]*)[a-zA-Z0-9\.]*/i";
if(preg_match($re,$list,$match))
{//找到文件
$file = $this->dir_name."\\".$match[0];
if($match[2]>$match[3]){unlink($file);return false;}
$content = file_get_contents($file);
$content = substr($content,strlen($this->code),(strlen($content)-strlen($this->code)));
return $content;
}
}
Function write($strname,$content,$cache_time='')
{
$strname = md5(trim($strname));
$list = $this->file_list;
$time = explode(" ",microtime());
$time = $time[1];
if(!$cache_time){$cache_time = $this->cache_time;}
$cache_time += $time;
$re = "/(".$strname.")_([0-9]*)_([0-9]*)[a-zA-Z0-9\.]*/i";
if(preg_match($re,$list,$match))
{//找到文件
$re_file = $this->dir_name."\\".$strname."_".$time."_".$cache_time.".php";
$file = $this->dir_name."\\".$match[0];
rename($file,$re_file);
$content = $this->code.$content;
$content = file_put_contents($re_file,$content);
$this->read_file();
return true;
}
else
{
$file = $this->dir_name."\\".$strname."_".$time."_".$cache_time.".php";
$content = $this->code.$content;
file_put_contents($file,$content);
$this->read_file();
}
}
Function delete($strname)
{
$strname = md5(trim($strname));
$list = $this->file_list;
$re = "/(".$strname.")_([0-9]*)_([0-9]*)[a-zA-Z0-9\.]*/i";
if(preg_match($re,$list,$match))
{//找到文件
$file = $this->dir_name."\\".$match[0];
unlink($file);
$this->read_file();
return true;
}else{return false;}
}
Function auto()
{//功能自动清除过期缓存文件
$list = $this->read_file();
$re = "/([a-zA-Z0-9]*)_([0-9]*)_([0-9]*)[a-zA-Z0-9\.]*/i";
if(preg_match_all($re,$list,$match))
{
for($i=0;$i<=(count($match[0])-1);$i++)
{
$file = $this->dir_name."\\".$match[0][$i];
if($match[2][$i]>$match[3][$i]){@unlink($file);$this->read_file();}
}
}
}
}
//测试代码
$cache = New Cls_cache;
$list = $cache->file_list;
//$cache->write('content','我是最好的哈哈');
echo $cache->read('content');
?>
这是我刚完成的缓存类!准备用在论坛的缓存!
娱乐休闲专区A 影视预告B 音乐咖啡C 英语阶梯D 生活百科
网页编程专区E AMPZF HTMLG CSSH JSI ASPJ PHPK JSPL MySQLM AJAX
Linux技术区 N 系统管理O 服务器架设P 网络/硬件Q 编程序开发R 内核/嵌入
管理中心专区S 发布网址T 版主议事U 事务处理