Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5119881
  • 博文数量: 921
  • 博客积分: 16037
  • 博客等级: 上将
  • 技术积分: 8469
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-05 02:08
文章分类

全部博文(921)

文章存档

2020年(1)

2019年(3)

2018年(3)

2017年(6)

2016年(47)

2015年(72)

2014年(25)

2013年(72)

2012年(125)

2011年(182)

2010年(42)

2009年(14)

2008年(85)

2007年(89)

2006年(155)

分类:

2010-06-12 10:39:07

将php文件中经常用到,并且需要经常多次查询数据库的,用到缓存将可以很好的降低内存消耗,加快访问速度。

这里讨论的是使用serialize将数组转成字串,存储在文件中,使用的时候再将字串转换成数组,为什么不用文件直接存储数组,这也是可以的。

PHPWind,discuz就是这么干的,但这里就不讨论了。

通过serializeunserializefread实现存储和释放数组的过程,代码如下:

 

<?php
function array2file($file,$array){
    $fp = fopen($file, "wb");
    fwrite($fp, serialize($array));
    fclose($fp);
}

function file2array($file){
    if(!file_exists($file)){
        exitstr(" does no exist");
    }
    $handle=fopen($file,"rb");
    $contents=fread($handle,filesize($file));
    fclose($handle);
    return unserialize($contents);
}

 

存储数组的时候使用array2file,要还原数组的时候使用file2array,例如:

<?php
$array=array("a","bb","c"=>2);
$file="temp.php";
if(array2file($file,$array)){
$p=file2array($file);
print_r($p);
}


PHP缓存的作用是显而易见的。如果你有太多的文章日志,每次都查询数据库,显然要消耗很多的内存,而直接把结果存储下来效果就不一样了。
阅读(1739) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~