本文实例汇总了常见PHP数据文件缓存类。分享给大家供大家参考。具体分析如下:
数据文件缓存的做法我们常用的有PHP文件缓存与利用memcache来缓存数据,下面面我分别总结了memcache缓存数据与数据文件缓存。感兴趣的朋友可以参考一下。
1.对于一般的变量,把该变量变成PHP语言的格式,写到文件中,用时只要include这个文件就相当于加载了cache了.
2.对于array型的变量,把array转化为PHP语言定义array的字符串,用时也只要include就相当于加载了cache了.
3.缓存cache时间上的控制,通过获取缓存文件的创建时间和现在的时间进行对比,如果没有到更新时间,直接读取缓存,如果到了更新时间,查询数据库.
{
$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;
}
}
?>
调用方法,代码如下:
<div class="codetitle"><a style="CURSOR: pointer" data="76416" class="copybut" id="copybut76416" onclick="doCopy('code76416')"> 代码如下: