PHP文件缓存类示例分享

前端技术 2023/09/07 PHP

复制代码 代码如下:

<?php
    /**
     * @desc 文件缓存
     */
    class Cache{
        const C_FILE = \'/Runtime/\';
        private $dir = \'\';
        const EXT = \'.tpl\';
        private $filename = \'\';
        public function __construct($dir = \'\'){
            $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,\'w+\');
            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 \'缓存文件已经不存在\';
            }else{
                $res = file_get_contents($this->filename);
            }
            return $res;
        }
        /**
         *    @desc 删除文件
         *  @param string $key 文件名
         */
        public function del($key){
            unlink($this->filename);
        }
    }
    $data = array(\'name\'=>\'song\',\'age\'=>20,\'sex\'=>\'man\',\'favority\'=>array(\'apple\',\'banana\'));
    $cache = new Cache();
    $cache->set(\'cache\',$data);
    //$cache->get(\'cache\');
    //$cache->del(\'cache\');

本文地址:https://www.stayed.cn/item/19939

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。