PHP缓存数组的实现
[ 2011-06-03 08:24:43 | 作者: admin ]
将php文件中经常用到,并且需要经常多次查询数据库的,用到缓存将可以很好的降低内存消耗,加快访问速度。
这里讨论的是使用serialize将数组转成字串,存储在文件中,使用的时候再将字串转换成数组,为什么不用文件直接存储数组,这也是可以的。
PHPWind,discuz就是这么干的,但这里就不讨论了。
通过serialize,unserialize,fread实现存储和释放数组的过程,代码如下:
存储数组的时候使用array2file,要还原数组的时候使用file2array,例如:
PHP缓存的作用是显而易见的。如果你有太多的文章日志,每次都查询数据库,显然要消耗很多的内存,而直接把结果存储下来效果就不一样了。
评论Feed: http://blog.xg98.com/feed.asp?q=comment&id=1688
这里讨论的是使用serialize将数组转成字串,存储在文件中,使用的时候再将字串转换成数组,为什么不用文件直接存储数组,这也是可以的。
PHPWind,discuz就是这么干的,但这里就不讨论了。
通过serialize,unserialize,fread实现存储和释放数组的过程,代码如下:
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);
}
$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,例如:
$array=array("a","bb","c"=>2);
$file="temp.php";
if(array2file($file,$array)){
$p=file2array($file);
print_r($p);
}
$file="temp.php";
if(array2file($file,$array)){
$p=file2array($file);
print_r($p);
}
PHP缓存的作用是显而易见的。如果你有太多的文章日志,每次都查询数据库,显然要消耗很多的内存,而直接把结果存储下来效果就不一样了。

这篇日志没有评论。
此日志不可发表评论。