您好,欢迎访问一九零五行业门户网

PHP微信开发用Cache 解决数据缓存

本文主要介绍,解决php微信开发时数据缓存的问题,这里用cache 类举例说明,具有参考价值,感兴趣的小伙伴可以参考下
用php进行微信开发时,碰到access_token长久保存的问题,以前都是用框架里的cache直接set、get一下就完了。现在没框架可用了,只好自己动手写一个cache暂时用。
这个cache类用来缓存一些具有时效性的数据,比如微信基础接口的access_token、网页auth验证的access_token等
下面的代码使用本地文件进行数据的缓存,
//测试  $cache = new cache();  $cache->dir = ../cc/;  //$cache->setcache(zhang, zhangsan, 100);  echo $cache->getcache(zhang);  //$cache->removecache(zhang);    $cache->setcache(liu, liuqi, 100);  echo $cache->getcache(liu);  class cache{  public $cachefile = cache.json; //文件  public $dir = ./cach2/; //目录  //缓存  public function setcache($name, $val, $expires_time){  $file = $this->hasfile();  //字符串转数组  $str = file_get_contents($file);  $arr = json_decode($str, true);    //值为空,则移除该缓存  if(empty($val)){  unset($arr[$name]);  }else{  $arr[$name] = array(value=>$val, expires_time=>$expires_time, add_time=>time());  }   //数组转字符串  $str = json_encode($arr);  file_put_contents($file, $str);  }  public function getcache($name){  $file = $this->hasfile();    //字符串转数组  $allarr = json_decode($str, true);  $arr = $allarr[$name];  if(!$arr || time() > ($arr[expires_time] + $arr[add_time])){  $this->removecache($name); //过期移除  return false;  }  return $arr[value];  }  public function removecache($name){  $this->setcache($name, '', 0);  }    private function hasfile(){  //如果不存在缓存文件,则创建一个  if(!file_exists($this->dir)){  mkdir($this->dir);  }  if(!file_exists($this->dir . $this->cachefile)){  touch($this->dir . $this->cachefile);  }  return $this->dir . $this->cachefile;  } }
上面的cache类共有set、get、remove三种操作。另外还可以自定义缓存文件的保存路径,只要设置cache的dir属性就可以了。
          以上就是php 微信开发时数据缓存的方法,希望对大家的学习有所帮助.
以上就是php微信开发用cache 解决数据缓存的详细内容。
其它类似信息

推荐信息