Home >Backend Development >PHP Tutorial >A concise PHP cache code, extremely simple_PHP tutorial

A concise PHP cache code, extremely simple_PHP tutorial

WBOY
WBOYOriginal
2016-07-21 14:58:25985browse

There is a lot of information about the PHP caching class on the Internet, but this class is probably the one I have seen that meets the needs but is extremely simple. Without further ado, let’s just look at the code!

Instructions for use:

1. Instantiation

$cache = new Cache();

2. Set cache time and cache directory

$cache = new Cache(60, '/any_other_path/');

The first parameter is the cache seconds, and the second parameter is the cache path, which can be configured as needed.
By default, the cache time is 3600 seconds, and the cache directory is cache/

3. Read cache

$value = $cache->get ('data_key');

4. Write cache

$value = $cache->put('data_key', 'data_value');

Complete example:

$cache = new Cache();

//Read the data of key value $key from cache
$values = $cache->get($key);

//If there is no cached data
if ($values ​​== false) {
//insert code here...
//Write the data of key value $key
$cache->put($key, $values);
} else {
//insert code here...
}

Cache.class.php

class Cache {
private $cache_path;//path for the cache
private $cache_expire; //seconds that the cache expires

//cache constructor, optional expiring time and cache path
public function Cache($exp_time=3600,$path="cache/"){
$this ->cache_expire=$exp_time;
$this->cache_path=$path;
}

//returns the filename for the cache
private function fileName($key){
return $this->cache_path.md5($key);
}

//creates new cache files with the given data, $key== name of the cache, data the info /values ​​to store
public function put($key, $data){
$values ​​= serialize($data);
$filename = $this->fileName($key);
$file = fopen($filename, 'w');
if ($file){//able to create the file
fwrite($file, $values);
fclose($file);
}
else return false;
}

//returns cache for the given key
public function get($key){
$filename = $this-> ;fileName($key);
if (!file_exists($filename) || !is_readable($filename)){//can't read the cache
return false;
}
if ( time() < (filemtime($filename) + $this->cache_expire) ) {//cache for the key not expired
$file = fopen($filename, "r");// read data file
if ($file){//able to open the file
$data = fread($file, filesize($filename));
fclose($file);
return unserialize( $data);//return the values ​​
}
else return false;
}
else return false;//was expired you need to create new
}
}
?>

This article comes from: http://www.mangguo.org/

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/363841.htmlTechArticleThere is a lot of information about the PHP cache class on the Internet, but this class should have functions that I have seen meet the needs, but it is incomparable A concise one. Without further ado, let’s just look at the code! Instructions for use: ...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn