1、PHP文件缓存内容保存格式
PHP文件缓存内容保存格式主要有三种:
(1)变量 var_export 格式化成PHP正常的赋值书写格式;
(2)变量 serialize 序列化之后保存,用的时候反序列化;
(3)变量 json_encode格式化之后保存,用的时候json_decode
互联网上测试结果是:serialize格式的文件解析效率大于Json,Json的解析效率大于PHP正常赋值。
所以我们要是缓存数据建议采用序列化的形式解析数据会更快。
2、PHP文件缓存的简单案例
[php] view plain copy print ?
-
- class Cache_Driver{
- //定义缓存的路径
- protected $_cache_path;
-
- //根据$config中的cache_path值获取路径信息
- public function Cache_Driver($config)
- {
- if(is_array($config) && isset($config['cache_path']))
- {
- $this->_cache_path = $config['cache_path'];
- }
- else
- {
- $this->_cache_path = realpath(dirname(__FILE__)."/")."/cache/";
- }
- }
- //判断key值对应的文件是否存在,如果存在,读取value值,value以序列化存储
- public function get($id)
- {
- if ( ! file_exists($this->_cache_path.$id))
- {
- return FALSE;
- }
-
- $data = @file_get_contents($this->_cache_path.$id);
- $data = unserialize($data);
-
- if(!is_array($data) || !isset($data['time']) || !isset($data['ttl']))
- {
- return FALSE;
- }
-
- if ($data['ttl'] > 0 && time() > $data['time'] + $data['ttl'])
- {
- @unlink($this->_cache_path.$id);
- return FALSE;
- }
-
- return $data['data'];
- }
- //设置缓存信息,根据key值,生成相应的缓存文件
- public function set($id, $data, $ttl = 60)
- {
- $contents = array(
- 'time' => time(),
- 'ttl' => $ttl,
- 'data' => $data
- );
-
- if (@file_put_contents($this->_cache_path.$id, serialize($contents)))
- {
- @chmod($this->_cache_path.$id, 0777);
- return TRUE;
- }
-
- return FALSE;
- }
- //根据key值,删除缓存文件
- public function delete($id)
- {
- return @unlink($this->_cache_path.$id);
- }
-
- public function clean()
- {
- $dh = @opendir($this->_cache_path);
- if(!$dh)
- return FALSE;
-
- while ($file = @readdir($dh))
- {
- if($file == "." || $file == "..")
- continue;
-
- $path = $this->_cache_path."/".$file;
- if(is_file($path))
- @unlink($path);
- }
- @closedir($dh);
-
- return TRUE;
- }
- }
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn