首页 > 开发 > PHP > 正文

常见php数据文件缓存类汇总

2024-05-04 22:16:54
字体:
来源:转载
供稿:网友

本文实例汇总了常见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)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表