一个简单至极的PHP缓存类代码
网上关于PHP缓存类的资料很多,不过这个类应该是我见过功能满足需求,但又无比简洁的一个。废话不多说,直接看代码吧!
使用说明:
1、实例化
$cache=newCache();
2、设置缓存时间和缓存目录
$cache=newCache(60,'/any_other_path/');
第一个参数是缓存秒数,第二个参数是缓存路径,根据需要配置。
默认情况下,缓存时间是3600秒,缓存目录是cache/
3、读取缓存
$value=$cache->get('data_key');
4、写入缓存
$value=$cache->put('data_key','data_value');
完整实例:
$cache=newCache();
//从缓存从读取键值$key的数据
$values=$cache->get($key);
//如果没有缓存数据
if($values==false){
//insertcodehere...
//写入键值$key的数据
$cache->put($key,$values);
}else{
//insertcodehere...
}
Cache.class.php
<?php
classCache{
private$cache_path;//pathforthecache
private$cache_expire;//secondsthatthecacheexpires
//cacheconstructor,optionalexpiringtimeandcachepath
publicfunctionCache($exp_time=3600,$path="cache/"){
$this->cache_expire=$exp_time;
$this->cache_path=$path;
}
//returnsthefilenameforthecache
privatefunctionfileName($key){
return$this->cache_path.md5($key);
}
//createsnewcachefileswiththegivendata,$key==nameofthecache,datatheinfo/valuestostore
publicfunctionput($key,$data){
$values=serialize($data);
$filename=$this->fileName($key);
$file=fopen($filename,'w');
if($file){//abletocreatethefile
fwrite($file,$values);
fclose($file);
}
elsereturnfalse;
}
//returnscacheforthegivenkey
publicfunctionget($key){
$filename=$this->fileName($key);
if(!file_exists($filename)||!is_readable($filename)){//can'treadthecache
returnfalse;
}
if(time()<(filemtime($filename)+$this->cache_expire)){//cacheforthekeynotexpired
$file=fopen($filename,"r");//readdatafile
if($file){//abletoopenthefile
$data=fread($file,filesize($filename));
fclose($file);
returnunserialize($data);//returnthevalues
}
elsereturnfalse;
}
elsereturnfalse;//wasexpiredyouneedtocreatenew
}
}
?>
相信大家一定会喜欢这个简洁的php缓存类代码,希望对大家的学习有所帮助。