• PHP文件缓存类


     1 <?php
     2     /**
     3      * @desc 文件缓存
     4      */
     5     class Cache{
     6         const C_FILE = '/Runtime/';
     7         private $dir = '';
     8         const EXT = '.tpl';
     9         private $filename = '';
    10         public function __construct($dir = ''){
    11             $this->dir = $dir;
    12             
    13         }
    14         /**
    15          *    @desc 设置文件缓存
    16          *    @param string $key 文件名 
    17          *    @param unkonw $data 缓存数据
    18          *    @param int    $expire 过期时间
    19          */
    20         public function set($key,$data,$expire = 0){
    21             $this->filename =     dirname(__FILE__).self::C_FILE.$this->dir.$key.self::EXT;
    22             if(file_exists($this->filename)){
    23                 $res = $this->get($key);
    24                 if(md5($res) == md5(json_encode($data) ) ){
    25                     return true;
    26                 }
    27             }
    28             if(!is_dir(dirname($this->filename))){
    29                 mkdir(dirname($this->filename),0777);
    30             }
    31             
    32             $source = fopen($this->filename,'w+');
    33             fwrite($source,json_encode($data));
    34             fclose($source);
    35         }
    36         
    37         /**
    38          *    @desc 获取文件
    39          *  @param string $key 文件名
    40          */
    41         public function get($key){
    42             //$filename = dirname(__FILE__).self::C_FILE.$this->dir.$key.self::EXT;
    43             if(!file_exists($this->filename)){
    44                 return '缓存文件已经不存在';
    45             }else{
    46                 $res = file_get_contents($this->filename);
    47             }
    48             return $res;
    49         }
    50         /**
    51          *    @desc 删除文件
    52          *  @param string $key 文件名
    53          */
    54         public function del($key){
    55             unlink($this->filename);
    56         }
    57         
    58     }
    59     
    60     $data = array('name'=>'song','age'=>20,'sex'=>'man','favority'=>array('apple','banana'));
    61     $cache = new Cache();
    62     $cache->set('cache',$data);
    63     //$cache->get('cache');
    64     //$cache->del('cache');
  • 相关阅读:
    C#实体类对象修改日志记录
    C#中关于增强类功能的几种方式
    Elasticsearch入坑指南之RESTful API
    React入门实例
    .Net Core+Vue.js+ElementUI 实现前后端分离
    ElasticSearch入坑指南之概述及安装
    MySQL优化技巧
    RabbitMQ入门教程——路由(Routing)
    RabbitMQ入门教程——发布/订阅
    RabbitMQ入门教程——工作队列
  • 原文地址:https://www.cnblogs.com/ikasa007/p/4261952.html
Copyright © 2020-2023  润新知