已掉线,重新登录

首页 > 绿虎论坛 > 历史版块 > 编程 > PHP

标题: 缓存类,借鉴了TP

作者: @Ta

时间: 2016-03-07

点击: 2468

<?php
namespace Lib;

class Cache{

    public static $options = [
        'expire'   => 3600,
        'path'      => CACHE_PATH,
    ];

    /**
     * 初始化
     * @param array $options
     */
    public function init($options = []){
        self::$options = array_merge(self::$options, $options);
        is_dir(self::$options['path']) or mkdir(self::$options['path'], 0755, true);
    }

    /**
     * 设置缓存
     * @param $key
     * @param $val
     * @param array $options
     * @return bool
     */
    public static function Set($key, $val, $options = []){
        self::init($options);
        $filename = self::getCacheFilename($key);
        $data = sprintf('%012d', self::$options['expire']) . serialize($val);
        if(file_put_contents($filename, $data)){ return true; }
        return false;
    }

    /**
     * 获取缓存
     * @param $key
     * @param $options
     * @return bool
     */
    public static function Get($key, $options = []){
        self::init($options);
        $filename = self::getCacheFilename($key);
        if(file_exists($filename)){
            $data = file_get_contents($filename);
            $expire = (int)substr($data, 0, 12);
            if($expire !== 0) {
                if (time() > ($expire + (int)filemtime($filename))) {
                    unlink($filename); return false;
                }
            }
            return unserialize(substr($data, 12));
        }
        return false;
    }

    /**
     * 获取缓存文件名
     * @param $key
     * @return string
     */
    public static function getCacheFilename($key){
        return self::$options['path'] . md5($key) . CACHE_PREFIX;
    }

}

[隐藏样式|查看源码]


『回复列表(4|隐藏机器人聊天)』

1. @hugbox,楼主无意地艾特了很多人,233😄😄😄
(/@Ta/2016-03-07 13:11//)

2. @剑士雅木,额
(/@Ta/2016-03-07 20:10//)

3. @hugbox,还好一楼不是echo
(/@Ta/2016-03-07 22:09//)

4. @梦浪的小虾米,啥意思
(/@Ta/2016-03-08 08:56//)

回复需要登录

8月29日 07:55 星期五

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1