亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

常見php數據文件緩存類匯總

2024-05-04 23:28:38
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了常見php數據文件緩存類,實例講述了php文件緩存與利用memcache來緩存數據的方法,代碼封裝性好,使用簡單,是非常實用的技巧,需要的朋友可以參考下
 
 

本文實例匯總了常見php數據文件緩存類。分享給大家供大家參考。具體分析如下:

數據文件緩存的做法我們常用的有php文件緩存與利用memcache來緩存數據,下面面我分別總結了memcache緩存數據與數據文件緩存。感興趣的朋友可以參考一下。

1.對于一般的變量,把該變量變成php語言的格式,寫到文件中,用時只要include這個文件就相當于加載了cache了.

2.對于array型的變量,把array轉化為php語言定義array的字符串,寫到文件中,用時也只要include就相當于加載了cache了.

3.緩存cache時間上的控制,通過獲取緩存文件的創建時間和現在的時間進行對比,如果沒有到更新時間,直接讀取緩存,如果到了更新時間,查詢數據庫.

文件緩存類,代碼如下:

復制代碼代碼如下:
<?php 
class DataCache 

 /** 
  * 數組轉換 
  * 
  * @param array $array 
  * @param string $arrayName 
  * @param array $level 
  * 
  * @return string 
  */ 
 private function arrayEval($array, $arrayName = '', $level = 0) 
 { 
  $space = str_repeat("t", $level); 
 
  if (emptyempty($arrayName)) 
  { 
   $evaluate = "arrayn$space(n"; 
  } 
  else 
  { 
   $evaluate = "${$arrayName} = arrayn$space(n"; 
  } 
 
  $space2 = str_repeat("t", $level + 1); 
  $comma = $space2; 
  if (!emptyempty($array)) 
  { 
   foreach ($array as $key => $val) 
   { 
    $key = is_string($key) ? ''' . addcslashes($key, ''/') . ''' : $key; 
    $val = !is_array($val) && (!preg_match('/^-?[1-9]d*$/', $val) || strlen($val) > 12) ? ''' . addcslashes($val, ''/') . ''' : $val; 
    if (is_array($val)) 
    { 
     $evaluate .= "$comma$key => " . arrayEval($val, '', $level + 1); 
    } 
    else 
    { 
     $evaluate .= "$comma$key => $val"; 
    } 
    $comma = ",n$space2"; 
   } 
  } 
  $evaluate .= "n$space)"; 
 
  // 最后才需要一個“;” 
  if ($level == 0) 
  { 
   $evaluate .= ";"; 
  } 
  return $evaluate; 
 } 
 
 /** 
  * 寫入緩存 
  * 
  * @param string $path 
  * @param string $arrayName 
  * @param array  $data 
  * 
  * @return boolean 
  */ 
 public static function writeCache($path, $arrayName, $data) 
 { 
  if ($handle = fopen($path, 'w+')) 
  { 
   $data = self::arrayEval($data, $arrayName); 
 
   $dataConvert = "<?phpn" . $data; 
 
   flock($handle, LOCK_EX); 
   $rs = fputs($handle, $dataConvert); 
   flock($handle, LOCK_UN); 
   fclose($handle); 
   if ($rs !== false) 
   { 
    return true; 
   } 
  } 
  return false; 
 } 

?>

調用方法,代碼如下:
復制代碼代碼如下:
/** 
* 生成文件緩存 

* @param string $filePath 緩存文件的保存路徑 
* @param string $arrayName 存放在緩存文件中的數組名稱 
* @param array $data 數據 

* @return boolean 
*/ 
DataCache::writeCache($filePath, $arrayName, $data);

memcache來緩存數據,這里提供這個文件緩存的類,代碼如下:
復制代碼代碼如下:
<?php 
/** 
 * 文件緩存類 
 * 提供文件緩存 
 */ 
class Cache_FileCache{ 
     
    /** 
     * 設置緩存 
     * @param $key 緩存的關鍵字key 
     * @param $data 緩存的內容 
     * @param $cacheLife 緩存時間(單位為秒)如果為0 則表示無限時間 
     * @return Bool 
     */ 
    public static function setCache($key,$data,$cacheLife) 
    { 
            if(file_exists(__SITE_FILE_CACHE)) 
            { 
                @$file                =  __SITE_FILE_CACHE . "/" . $key .".php"; 
                $cache                  =  array(); 
                $time                =  __SYS_TIME; 
                $cache['content']    =  $data; 
                $cache['expire']    =  $cacheLife === 0 ? 0 : $time+$cacheLife; 
                $cache['mtime']        =  $time; 
                $cache                =  serialize($cache); 
                $setReslut            =  @file_put_contents($file,$cache) or self::error(__line__,"文件寫入出錯"); 
                $chmodReslut        =  @chmod($file,0777) or self::error(__line__,"設定文件權限失敗"); 
                if($setReslut && $chmodReslut) 
                { 
                    return true; 
                } 
                else 
                { 
                    return false; 
                } 
            } 
    } 
 
    /** 
     * 得到緩存數據 
     * @param $key 緩存的關鍵字key 
     * @return array 
     */ 
    public static function getCache($key) 
    { 
            @$file                =      __SITE_FILE_CACHE . "/" . $key .".php"; 
            if(file_exists($file)) 
            { 
                     $data        =    @file_get_contents($file); 
                     $data        =   unserialize($data); 
                     if($data['expire']==0 || $data['expire'] > __SYS_TIME) 
                     { 
                         return $data['content']; 
                     } 
                     else  
                     { 
                         unlink($file); 
                         return array(); 
                     } 
            }         
    } 
     
    /** 
     * 刪除緩存文件 
     * @param $key 緩存$key 
     * @return Bool 
     */ 
    public static function delCache($key) 
    {         
        if (@unlink(__SITE_FILE_CACHE."/".$key.".php")) 
        { 
            return true; 
        } 
        else 
        { 
            return false; 
        } 
    } 
     
    /** 
     * 清除所有緩存文件 
     * @return Bool 
     */ 
     
    public static function clearAllCache() 
    { 
        $files = scandir(__SITE_FILE_CACHE); 
        foreach ($files as $val) 
        { 
            @unlink(__SITE_FILE_CACHE."/".$val); 
        } 
    } 
     
    /** 
     * 出錯處理函數 
     * @param $line 行數 
     * @param $msg  信息 
     */ 
    public static function error($line,$msg) 
    { 
        die("出錯文件:".__file__."/n出錯行:$line/n錯誤信息:$msg"); 
    } 

?>

 

希望本文所述對大家基于ThinkPHP框架的PHP程序設計有所幫助。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久亚洲精品国产| 亚洲精品一二区| 国产精品成人一区二区| 色噜噜久久综合伊人一本| 久久视频这里只有精品| 亚洲欧美日韩直播| 亚洲欧美在线x视频| 伊人久久久久久久久久| 91视频国产精品| 日韩高清电影免费观看完整| 青青草国产精品一区二区| 国产欧美韩国高清| 欧美成人激情在线| 精品国产一区久久久| 亚洲一级片在线看| 欧美日韩成人在线播放| 亚洲精品动漫久久久久| 91av在线不卡| 韩曰欧美视频免费观看| 亚洲激情在线视频| 精品久久久国产| 92看片淫黄大片看国产片| 国产色婷婷国产综合在线理论片a| 91精品在线国产| 欧美在线视频网站| 欧美最猛性xxxxx免费| 国产精品永久免费| 国产欧美va欧美va香蕉在线| 国产精品爽爽爽爽爽爽在线观看| 亚洲国产欧美久久| 中文字幕欧美日韩精品| 日本久久中文字幕| 97精品国产97久久久久久春色| 国产免费观看久久黄| 亚洲一区二区在线| 国产精品视频资源| 国产成人精品av| 久久伊人精品天天| 国产综合久久久久久| 亚洲福利在线播放| 中文字幕日韩av| 亚洲一区二区免费| 在线视频欧美日韩精品| 国产日韩视频在线观看| 久久精品在线播放| 国产精品视频yy9099| 久久久久国产精品一区| 欧美日韩在线另类| 亚洲美女免费精品视频在线观看| 欧美色videos| 亚洲精品视频在线播放| 国产激情久久久久| 国产精品一区二区女厕厕| 日韩在线观看免费全| 日韩在线www| 亚洲精品免费在线视频| 成人黄色短视频在线观看| 亚洲欧美另类中文字幕| 欧美在线欧美在线| 另类天堂视频在线观看| 欧美激情第1页| 久久久成人的性感天堂| 日韩精品在线免费观看| 国产欧美日韩丝袜精品一区| 成人免费淫片视频软件| 富二代精品短视频| 91九色国产视频| 久久久999精品视频| 伊人伊成久久人综合网小说| 92福利视频午夜1000合集在线观看| 中文字幕久精品免费视频| 日韩精品电影网| 亚洲sss综合天堂久久| 精品福利视频导航| 在线观看国产欧美| 成人免费观看a| 日韩成人免费视频| 国产91热爆ts人妖在线| 亚洲影院污污.| 精品日韩美女的视频高清| 亚洲综合在线小说| 亚洲老板91色精品久久| 国产成人精品最新| 亚洲欧美中文在线视频| 国产综合香蕉五月婷在线| 欧美亚洲视频在线看网址| 欧美性xxxxx| 亚洲欧美一区二区三区情侣bbw| 一区二区在线视频| 欧美激情中文字幕乱码免费| 日韩欧美福利视频| 中文字幕亚洲综合久久| 日韩av中文字幕在线播放| 伊人久久综合97精品| 2019中文字幕免费视频| 97精品伊人久久久大香线蕉| 欧美裸体xxxx极品少妇| 日韩免费观看av| 亚洲美女av在线播放| 欧美理论在线观看| 亚洲第一级黄色片| 精品成人乱色一区二区| 亚洲偷熟乱区亚洲香蕉av| 国产精品久久久999| 欧美老女人在线视频| 久久精品91久久久久久再现| 国产欧美日韩综合精品| 亚洲综合在线中文字幕| 欧美猛少妇色xxxxx| 欧美激情日韩图片| 亚洲精品在线不卡| 97成人在线视频| 亚洲国产毛片完整版| 久久69精品久久久久久久电影好| 欧美激情视频一区二区三区不卡| 成人在线视频福利| 日韩成人久久久| 姬川优奈aav一区二区| 国产精品国产三级国产aⅴ9色| 亚洲视频在线看| 日韩精品高清在线| 国产成人精品免费视频| 亚洲性线免费观看视频成熟| 夜夜嗨av色一区二区不卡| 亚洲风情亚aⅴ在线发布| 亚洲自拍偷拍一区| 中文字幕亚洲字幕| 久久韩国免费视频| 91九色蝌蚪国产| 欧美极品欧美精品欧美视频| 欧美伊久线香蕉线新在线| 91免费观看网站| 欧美韩国理论所午夜片917电影| 曰本色欧美视频在线| 亚洲激情视频在线| 亚洲综合在线小说| 欧美激情在线视频二区| 亚洲人成在线一二| 国产不卡一区二区在线播放| 日韩一区二区久久久| 国产精品久久激情| 欧美亚洲视频一区二区| 欧美高清不卡在线| 国产欧美日韩免费看aⅴ视频| 久久久久久久久久久91| 国产精品激情av在线播放| 色综合亚洲精品激情狠狠| 日韩美女主播视频| 日韩精品免费在线播放| 亚洲自拍偷拍色图| 欧美精品videofree1080p| 亚洲精品成人免费| 国产精品黄色影片导航在线观看| 川上优av一区二区线观看| 国产精品成av人在线视午夜片| 日韩av在线播放资源| 欧美亚洲视频一区二区| 这里只有精品在线观看| 精品久久久在线观看| 91av在线不卡| 亚洲美腿欧美激情另类| 欧美日韩国产综合新一区| 91精品国产色综合久久不卡98口| 一区二区三区视频免费|