溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

PHP中怎么實現(xiàn)一個文件緩存類

發(fā)布時間:2021-06-23 16:40:34 來源:億速云 閱讀:350 作者:Leah 欄目:開發(fā)技術(shù)

這篇文章將為大家詳細講解有關(guān)PHP中怎么實現(xiàn)一個文件緩存類,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

<?php
    /**
     * @desc 文件緩存
     */
    class Cache{
        const C_FILE = '/Runtime/';
        private $dir = '';
        const EXT = '.tpl';
        private $filename = '';
        public function __construct($dir = ''){
            $this->dir = $dir;
        }
        /**
         *    @desc 設(shè)置文件緩存
         *    @param string $key 文件名 
         *    @param unkonw $data 緩存數(shù)據(jù)
         *    @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 '緩存文件已經(jīng)不存在';
            }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');

關(guān)于PHP中怎么實現(xiàn)一個文件緩存類就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI