亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

有哪些常見的php數據文件緩存類

發布時間:2021-03-05 14:55:55 來源:億速云 閱讀:106 作者:Leah 欄目:開發技術

今天就跟大家聊聊有關有哪些常見的php數據文件緩存類,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

php有什么用

php是一個嵌套的縮寫名稱,是英文超級文本預處理語言,它的語法混合了C、Java、Perl以及php自創新的語法,主要用來做網站開發,許多小型網站都用php開發,因為php是開源的,從而使得php經久不衰。

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");
    }
}
?>

看完上述內容,你們對有哪些常見的php數據文件緩存類有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

友谊县| 洱源县| 巴楚县| 大庆市| 象山县| 绍兴市| 长武县| 彰化市| 德阳市| 万载县| 牙克石市| 绥阳县| 九江市| 三原县| 厦门市| 聂拉木县| 闽侯县| 桐梓县| 贡山| 赣榆县| 乐山市| 大厂| 甘南县| 铅山县| 陇川县| 三台县| 唐河县| 遂平县| 平潭县| 印江| 石泉县| 临湘市| 商水县| 杭锦旗| 鲁甸县| 揭西县| 铅山县| 呼图壁县| 资阳市| 睢宁县| 广东省|