簡單的檔案快取函式

jiny發表於2019-02-16

前幾天一個很古老的網站突然要加微信分享功能。無奈cms太過古老。無法快取微信介面的AccessToken。存資料庫覺得得不償失。加redis 覺得還不如存資料庫(還需要 給線上伺服器裝redis服務,覺得範不上)。只好寫道檔案裡。

function setCache($cache_key,$data=false,$time=3600){
    //快取檔案存在且時間不超過一小時,則直接使用快取的結果集,不在進行任何的MySQL查詢了
    $cachFile = $_SERVER[`DOCUMENT_ROOT`].`/Data/`.$cache_key.`.php`;
    if($data || $data!==false||$data===NULL){
        $data = json_encode($data);
        file_put_contents($cachFile, $data);
    }else{
        if(file_exists($cachFile) && time()-filemtime($cachFile) < $time) {
            //使用快取中的結果
            $json = file_get_contents($cachFile);
            if($json==`null`){
                return false;
            }
            return json_decode($json,true);
        }
        return false;
    }
    return false;
}

setCache(`key`,`mycache`);//設定快取

echo setCache(`key`); //讀取快取
setCache(`key`,null);//清空快取

有一點不知道是否合理,就是當我清空快取的時候。是否有必要取把這個快取檔案刪掉。

相關文章