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

首頁 > 語言 > PHP > 正文

幾個簡單的php數據文件緩存類

2024-09-04 11:44:03
字體:
來源:轉載
供稿:網友

數據文件緩存的做法我們常用的有php文件緩存與利用memcache來緩存數據,下面面我分別總結了memcache緩存數據與數據文件緩存有需要的朋友可參考參考.

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

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

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

文件緩存類,代碼如下:

  1. <?php 
  2. class DataCache 
  3.  
  4.  /** 
  5.   * 數組轉換 
  6.   * 
  7.   * @param array $array 
  8.   * @param string $arrayName 
  9.   * @param array $level 
  10.   * 
  11.   * @return string 
  12.   */ 
  13.  private function arrayEval($array$arrayName = ''$level = 0) 
  14.  { 
  15.   $space = str_repeat("t"$level); 
  16.  
  17.   if (emptyempty($arrayName)) 
  18.   { 
  19.    $evaluate = "arrayn$space(n"
  20.   } 
  21.   else 
  22.   { 
  23.    $evaluate = "${$arrayName} = arrayn$space(n"
  24.   } 
  25.  
  26.   $space2 = str_repeat("t"$level + 1); 
  27.   $comma = $space2
  28.   if (!emptyempty($array)) 
  29.   { 
  30.    foreach ($array as $key => $val
  31.    { 
  32.     $key = is_string($key) ? ''' . addcslashes($key, ''/') . ''' : $key
  33.     $val = !is_array($val) && (!preg_match('/^-?[1-9]d*$/'$val) || strlen($val) > 12) ? ''' . addcslashes($val, ''/') . ''' : $val
  34.     if (is_array($val)) 
  35.     { 
  36.      $evaluate .= "$comma$key => " . arrayEval($val''$level + 1); 
  37.     } 
  38.     else 
  39.     { 
  40.      $evaluate .= "$comma$key => $val"
  41.     } 
  42.     $comma = ",n$space2"
  43.    } 
  44.   } 
  45.   $evaluate .= "n$space)"
  46.  
  47.   // 最后才需要一個“;” 
  48.   if ($level == 0) 
  49.   { 
  50.    $evaluate .= ";"
  51.   } 
  52.   return $evaluate
  53.  } 
  54.  
  55.  /** 
  56.   * 寫入緩存 
  57.   * 
  58.   * @param string $path 
  59.   * @param string $arrayName 
  60.   * @param array  $data 
  61.   * 
  62.   * @return boolean 
  63.   */ 
  64.  public static function writeCache($path$arrayName$data
  65.  { 
  66.   if ($handle = fopen($path'w+')) 
  67.   { 
  68.    $data = self::arrayEval($data$arrayName); 
  69.  
  70.    $dataConvert = "<?phpn" . $data
  71.  
  72.    flock($handle, LOCK_EX); 
  73.    $rs = fputs($handle$dataConvert); 
  74.    flock($handle, LOCK_UN); 
  75.    fclose($handle); 
  76.    if ($rs !== false) 
  77.    { 
  78.     return true; 
  79.    } 
  80.   } 
  81.   return false; 
  82.  } 
  83.  
  84. ?> 

調用方法,代碼如下:

  1. /** 
  2. * 生成文件緩存 
  3. * 
  4. * @param string $filePath 緩存文件的保存路徑 
  5. * @param string $arrayName 存放在緩存文件中的數組名稱 
  6. * @param array $data 數據 
  7. * 
  8. * @return boolean 
  9. */ 
  10. DataCache::writeCache($filePath$arrayName$data); 

memcache來緩存數據,提供這個文件緩存的類m希望大家可以看看,代碼如下:

  1. <?php 
  2. /** 
  3.  * 文件緩存類 
  4.  * 提供文件緩存 
  5.  * @author guoyubin(263421949@qq.com) 
  6.  */ 
  7. class Cache_FileCache{ 
  8.      
  9.     /** 
  10.      * 設置緩存 
  11.      * @param $key 緩存的關鍵字key 
  12.      * @param $data 緩存的內容 
  13.      * @param $cacheLife 緩存時間(單位為秒)如果為0 則表示無限時間 
  14.      * @return Bool 
  15.      */ 
  16.     public static function setCache($key,$data,$cacheLife
  17.     { 
  18.             if(file_exists(__SITE_FILE_CACHE)) 
  19.             { 
  20.                 @$file                =  __SITE_FILE_CACHE . "/" . $key .".php"
  21.                 $cache                  =  array(); 
  22.                 $time                =  __SYS_TIME; 
  23.                 $cache['content']    =  $data
  24.                 $cache['expire']    =  $cacheLife === 0 ? 0 : $time+$cacheLife
  25.                 $cache['mtime']        =  $time
  26.                 $cache                =  serialize($cache); 
  27.                 $setReslut            =  @file_put_contents($file,$cacheor self::error(__line__,"文件寫入出錯"); 
  28.                 $chmodReslut        =  @chmod($file,0777) or self::error(__line__,"設定文件權限失敗"); 
  29.                 if($setReslut && $chmodReslut
  30.                 { 
  31.                     return true; 
  32.                 } 
  33.                 else 
  34.                 { 
  35.                     return false; 
  36.                 } 
  37.                  
  38.             } 
  39.          
  40.     } 
  41.  
  42.     /** 
  43.      * 得到緩存數據 
  44.      * @param $key 緩存的關鍵字key 
  45.      * @return array 
  46.      */ 
  47.     public static function getCache($key
  48.     { 
  49.             @$file                =      __SITE_FILE_CACHE . "/" . $key .".php"
  50.             if(file_exists($file)) 
  51.             { 
  52.                      $data        =    @file_get_contents($file); 
  53.                      $data        =   unserialize($data); 
  54.                      if($data['expire']==0 || $data['expire'] > __SYS_TIME) 
  55.                      { 
  56.                          return $data['content']; 
  57.                      } 
  58.                      else  
  59.                      { 
  60.                          unlink($file); 
  61.                          return array(); 
  62.                      } 
  63.             }         
  64.     } 
  65.      
  66.     /** 
  67.      * 刪除緩存文件 
  68.      * @param $key 緩存$key 
  69.      * @return Bool 
  70.      */ 
  71.     public static function delCache($key
  72.     {         
  73.         if (@unlink(__SITE_FILE_CACHE."/".$key.".php")) 
  74.         { 
  75.             return true; 
  76.         } 
  77.         else 
  78.         { 
  79.             return false; 
  80.         } 
  81.     } 
  82.      
  83.     /** 
  84.      * 清除所有緩存文件 
  85.      * @return Bool 
  86.      */ 
  87.      
  88.     public static function clearAllCache() 
  89.     { 
  90.         $files = scandir(__SITE_FILE_CACHE); 
  91.         foreach ($files as $val
  92.         { 
  93.             @unlink(__SITE_FILE_CACHE."/".$val); 
  94.  
  95.         } 
  96.     } 
  97.      
  98.     /** 
  99.      * 出錯處理函數 
  100.      * @param $line 行數 
  101.      * @param $msg  信息 
  102.      */ 
  103.     public static function error($line,$msg
  104.     { 
  105.         die("出錯文件:".__file__."/n出錯行:$line/n錯誤信息:$msg"); 
  106.     } 
  107.  
  108. ?> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产丝袜一区二区三区| 国产精品欧美一区二区三区奶水| 日韩电影网在线| 亚洲欧美国内爽妇网| 人妖精品videosex性欧美| 亚洲一区亚洲二区亚洲三区| 精品国产999| 5566日本婷婷色中文字幕97| 亚洲视频在线观看| 98午夜经典影视| 98视频在线噜噜噜国产| 国产精品久久久久久久久久尿| 69国产精品成人在线播放| 亚洲黄色在线观看| 久久久久久国产精品美女| 欧美日韩在线免费观看| 欧美大片在线看免费观看| 97av在线播放| 日韩免费中文字幕| 国产精品揄拍一区二区| 欧洲亚洲免费在线| 亚洲天堂网在线观看| 精品综合久久久久久97| 欧美成人激情在线| 亚洲成人精品在线| 久久99国产精品自在自在app| 国产丝袜高跟一区| 欧美贵妇videos办公室| 精品夜色国产国偷在线| 91在线观看免费观看| 日韩欧美国产一区二区| 日韩av大片免费看| 97国产一区二区精品久久呦| 97国产精品视频人人做人人爱| 国产在线精品成人一区二区三区| 777午夜精品福利在线观看| 亚洲午夜av电影| 国产一区二区久久精品| 日韩av在线免费播放| 国产精品狠色婷| 国产精品人人做人人爽| 夜夜嗨av色一区二区不卡| 日韩欧美精品网址| 欧美激情喷水视频| 国产精品亚洲аv天堂网| 欧美午夜精品久久久久久人妖| 久久久久久久久久久国产| 欧美色视频日本高清在线观看| 亚州欧美日韩中文视频| 欧美尺度大的性做爰视频| 2018中文字幕一区二区三区| 成人在线观看视频网站| 国产乱人伦真实精品视频| 久久久国产一区二区三区| 欧美激情综合亚洲一二区| 亚洲激情视频网| 亚洲精品福利免费在线观看| 91精品视频在线| 久久综合免费视频影院| 久久久欧美一区二区| 一本色道久久综合亚洲精品小说| 亚洲精品视频二区| 91精品国产成人www| 中文字幕精品www乱入免费视频| 欧美一区三区三区高中清蜜桃| 亚洲人午夜精品免费| 国产精品久久一区主播| 亚洲欧洲在线播放| 午夜免费在线观看精品视频| 国产91免费看片| 欧美精品videossex88| 日本精品免费观看| 欧美激情一级欧美精品| 欧美日韩xxxxx| 亚洲xxx自由成熟| 日韩的一区二区| 欧美一级大片在线免费观看| 91大神在线播放精品| 亚洲美女动态图120秒| 亚洲精品久久久久久久久久久久| 欧美性xxxx极品hd欧美风情| 久久国产精品久久国产精品| 国产成人一区二区三区| 国外成人免费在线播放| 高清欧美性猛交xxxx| 欧美大片在线看免费观看| 九九热精品视频在线播放| 欧美性xxxx极品高清hd直播| 精品人伦一区二区三区蜜桃网站| 精品福利视频导航| 久久99国产精品自在自在app| 91av在线不卡| 亚洲人免费视频| 成人字幕网zmw| 午夜精品久久久久久久99热浪潮| 97免费在线视频| 亚洲精品欧美一区二区三区| 国产精品福利在线| 亚洲成人av中文字幕| 日韩在线激情视频| 欧美日韩国产综合视频在线观看中文| 热re99久久精品国产66热| 日本91av在线播放| 日韩av一区二区在线观看| 国产福利精品视频| 久久天天躁狠狠躁夜夜躁| 在线观看国产成人av片| 日本电影亚洲天堂| 成人黄色片网站| 国产午夜精品免费一区二区三区| 国产精品专区第二| 亚洲xxxxx性| 91香蕉电影院| 久久久成人av| 亚洲一区二区三区在线免费观看| 91成人免费观看网站| 国产精品∨欧美精品v日韩精品| 性欧美暴力猛交69hd| 久久久亚洲天堂| 少妇激情综合网| 国产精品久久久久77777| 亚洲成人激情在线| 国模gogo一区二区大胆私拍| 九九热精品视频| 欧美中文在线免费| 亚洲福利视频二区| 欧美不卡视频一区发布| 国产日韩欧美中文在线播放| 国内成人精品视频| xxxxx91麻豆| 亚洲午夜精品视频| 亚洲va久久久噜噜噜久久天堂| 日韩中文字幕在线看| 97视频在线观看免费高清完整版在线观看| 一夜七次郎国产精品亚洲| 国产91网红主播在线观看| 欧美综合在线观看| 亚洲精品日韩欧美| 91av在线精品| 91chinesevideo永久地址| 91日本视频在线| 日韩成人激情在线| 91免费人成网站在线观看18| 成人激情视频在线观看| 国产午夜一区二区| 国外成人性视频| 欧美性xxxxxxx| 亚洲全黄一级网站| 国产精品69精品一区二区三区| 亚洲国语精品自产拍在线观看| 国产精品久久久久久久久久新婚| 亚洲欧美成人一区二区在线电影| 日韩电影中文字幕av| 国产自产女人91一区在线观看| 国产精品视频成人| 91tv亚洲精品香蕉国产一区7ujn| 人体精品一二三区| 亚洲精品免费在线视频| 亚洲香蕉成人av网站在线观看| 在线亚洲午夜片av大片| 中文字幕日韩av综合精品| 久久综合88中文色鬼| 久久综合亚洲社区| 亚洲国产精品久久久久秋霞蜜臀|