cari
Rumahphp教程php手册超简单的php缓存类

超简单的php缓存类

Aug 12, 2017 am 10:19 AM
pphpMudahcacheMilik

自己写的一个简单的php缓存类。                                              

<?php
class Cache 
{
	private $dir = "data/cache/";//定义缓存目录	
	private $key=&#39;c_a_sss&#39;;	// 文件名 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[&#39;time&#39;] < $minutes*60)
		  {
		  	return $datas[&#39;data&#39;];
		  }
		}
		return false;
	}
 
	function write($key,$data)
	{		
		$filename=$this->get_filename($key);
		if($handle = fopen($filename,&#39;w+&#39;))
		{
			$datas = array(&#39;data&#39;=>$data,&#39;time&#39;=>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.&#39;_&#39;.md5($key.$this->key);
	}
	private function make_dir($path)
	{
		if (! file_exists ( $path ))
		{
			if (! mkdir ( $path, 0777,true)) die ( &#39;无法创建缓存文件夹&#39; . $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(&#39;data/cache_dir/&#39;);
$data=$cache->read(&#39;sys&#39;,1);
if(empty($data))
{
$data=array(&#39;aa&#39;=>1111,&#39;bb&#39;=>2222,&#39;date&#39;=>date(&#39;Y-m-d H:i:s&#39;));
$cache->write(&#39;sys&#39;,$data);	
}
print_r($data);

                               

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

SecLists

SecLists

SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

Muat turun versi mac editor Atom

Muat turun versi mac editor Atom

Editor sumber terbuka yang paling popular

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa