一个简单至极的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缓存类代码,希望对大家的学习有所帮助。