简单的php缓存类分享 php缓存机制
Jun 06, 2016 pm 08:25 PM这篇文章主要介绍了一个php缓存类,文件名使用md5加密,大家参考使用吧
复制代码 代码如下:
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'] {
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);

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Comment optimiser les performances d'un site Web et la vitesse de chargement avec PHP

Comment implémenter la mise en cache dynamique des données via la technologie de mise en cache en PHP ?

Analyse de l'efficacité de la technologie de mise en cache en PHP pour les fichiers de ressources statiques

Explication détaillée du mécanisme de mise en cache PHP : exploration approfondie de son principe de fonctionnement et de son application pratique

Comprendre les mécanismes de mise en cache PHP : explorer différentes implémentations

Technologie de mise en cache en PHP et sa méthode de mise en œuvre

Analyse de scénarios d'application de la technologie de mise en cache en PHP dans différents types d'applications

Un guide des techniques de mise en cache en PHP
