首页 > 后端开发 > php教程 > 关于ThinkPHP文件缓存类的代码

关于ThinkPHP文件缓存类的代码

不言
发布: 2023-03-31 13:14:02
原创
2756 人浏览过

本文给大家分享的是取自ThinkPHP中的关于文件缓存类的代码,非常的实用,效率也非常不错,这里推荐给大家,有需要的小伙伴参考下。

取自ThinkPHP的文件缓存类代码,这里就不多废话了,小伙伴们自己看注释吧。

<?php
  /**
   * @desc 文件缓存
   */
  class Cache{
    const C_FILE = &#39;/Runtime/&#39;;
    private $dir = &#39;&#39;;
    const EXT = &#39;.tpl&#39;;
    private $filename = &#39;&#39;;
    public function __construct($dir = &#39;&#39;){
      $this->dir = $dir;
      
    }
    /**
     *  @desc 设置文件缓存
     *  @param string $key 文件名 
     *  @param unkonw $data 缓存数据
     *  @param int  $expire 过期时间
     */
    public function set($key,$data,$expire = 0){
      $this->filename =   dirname(__FILE__).self::C_FILE.$this->dir.$key.self::EXT;
      if(file_exists($this->filename)){
        $res = $this->get($key);
        if(md5($res) == md5(json_encode($data) ) ){
          return true;
        }
      }
      if(!is_dir(dirname($this->filename))){
        mkdir(dirname($this->filename),0777);
      }
      
      $source = fopen($this->filename,&#39;w+&#39;);
      fwrite($source,json_encode($data));
      fclose($source);
    }
    
    /**
     *  @desc 获取文件
     * @param string $key 文件名
     */
    public function get($key){
      //$filename = dirname(__FILE__).self::C_FILE.$this->dir.$key.self::EXT;
      if(!file_exists($this->filename)){
        return &#39;缓存文件已经不存在&#39;;
      }else{
        $res = file_get_contents($this->filename);
      }
      return $res;
    }
    /**
     *  @desc 删除文件
     * @param string $key 文件名
     */
    public function del($key){
      unlink($this->filename);
    }
    
  }
  
  $data = array(&#39;name&#39;=>&#39;song&#39;,&#39;age&#39;=>20,&#39;sex&#39;=>&#39;man&#39;,&#39;favority&#39;=>array(&#39;apple&#39;,&#39;banana&#39;));
  $cache = new Cache();
  $cache->set(&#39;cache&#39;,$data);
  //$cache->get(&#39;cache&#39;);
  //$cache->del(&#39;cache&#39;);
登录后复制

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP中文网!

相关推荐:

thinkphp利用模型通用数据编辑添加和删除

关于ThinkPhp框架表单验证和ajax验证问题的分析

以上是关于ThinkPHP文件缓存类的代码的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
为什么thinkphp比laravel性能好?
来自于 1970-01-01 08:00:00
0
0
0
php6支持的thinkphp版本
来自于 1970-01-01 08:00:00
0
0
0
mscms.qishouzhijia.com,自学thinkphp做的一个网站
来自于 1970-01-01 08:00:00
0
0
0
ThinkPHP什么要使用composer?
来自于 1970-01-01 08:00:00
0
0
0
thinkphp上传文件
来自于 1970-01-01 08:00:00
0
0
0
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板