Maison php教程 php手册 简单的php缓存类分享 php缓存机制

简单的php缓存类分享 php缓存机制

Jun 06, 2016 pm 08:25 PM
php缓存技术 mécanisme de mise en cache php

这篇文章主要介绍了一个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);

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Comment optimiser les performances d'un site Web et la vitesse de chargement avec PHP Comment optimiser les performances d'un site Web et la vitesse de chargement avec PHP Sep 12, 2023 am 10:13 AM

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 ? Comment implémenter la mise en cache dynamique des données via la technologie de mise en cache en PHP ? Jun 21, 2023 am 08:10 AM

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 Analyse de l'efficacité de la technologie de mise en cache en PHP pour les fichiers de ressources statiques Jun 19, 2023 pm 10:49 PM

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 Explication détaillée du mécanisme de mise en cache PHP : exploration approfondie de son principe de fonctionnement et de son application pratique Jan 23, 2024 am 09:13 AM

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 Comprendre les mécanismes de mise en cache PHP : explorer différentes implémentations Jan 23, 2024 am 09:53 AM

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 Technologie de mise en cache en PHP et sa méthode de mise en œuvre Jun 23, 2023 am 11:31 AM

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 Analyse de scénarios d'application de la technologie de mise en cache en PHP dans différents types d'applications Jun 19, 2023 pm 11:25 PM

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 Un guide des techniques de mise en cache en PHP Jun 11, 2023 am 09:04 AM

Un guide des techniques de mise en cache en PHP

See all articles