这篇文章主要介绍了一个php缓存类,文件名使用md5加密,大家参考使用吧
代码如下:
XYCMS(PHP版)企业建站系统是XYCMS工作室推出的一套通用的企业建站软件系统。XYCMS企业建站系统是专业从事企业网站制作与设计服务,已有四年工作经验,网站系统方便、简洁、容易上手。所设计的版本分为动态版和静态版,比起市场上同类系统,性价比还是很高的,在企业网站建设行业里拥有丰富的经验,并在业界取得好评。 更新日志:1.后台简单特殊字符替换XYCMS(PHP版) 软件的安装:1. 上传 u
0
<?php class Cache
{
private $dir = "data/cache/";//定义缓存目录
private $key = 'c_a_sss'; // 文件名md5加密密钥
function set_dir($dirpath) {
$this->dir=$dirpath;
$this->make_dir($this->dir);
}
function read($key,$minutes=1) {
$filename=$this->get_filename($key);
if($datas = @file_get_contents($filename)){
$datas = unserialize($datas);
if(time() - $datas['time'] < $minutes*60) {
return $datas['data'];
}
}
return false;
}
function write($key,$data){
$filename=$this->get_filename($key);
if($handle = fopen($filename,'w+')) {
$datas = array('data'=>$data,'time'=>time());
flock($handle,LOCK_EX);
$rs = fputs($handle,serialize($datas));
flock($handle,LOCK_UN);
fclose($handle);
if($rs!==false){
return true;
}
}
return false;
}
function clear_all(){
$dir=$this->dir;
$this->del_file($dir);
}
private function get_filename($key){
return $this->dir.$key.'_'.md5($key.$this->key);
}
private function make_dir($path){
if (! file_exists ( $path )) {
$this->make_dir ( dirname ( $path ) );
if (! mkdir ( $path, 0777 ))
die ( '无法创建缓存文件夹' . $path );
}
}
private function del_file($dir){
if (is_dir($dir)){
$dh=opendir($dir);//打开目录
// //列出目录中的所有文件并去掉 . 和 ..
while (false !== ( $file = readdir ($dh))) {
if($file!="." && $file!="..") {
$fullpath=$dir."/".$file;
if(!is_dir($fullpath)) {
unlink($fullpath);
} else {
$this->del_file($fullpath);
}
}
}
closedir($dh);
}
}
}
$cache = new cache();
$cache->set_dir('data/cache_dir/');
$data=$cache->read('sys',1);
if(empty($data)){
$data=array('aa'=>1111,'bb'=>2222,'date'=>date('Y-m-d H:i:s'));
$cache->write('sys',$data);}
print_r($data);
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号