关于php缓存的简单应用

php

2011-11-20 21:26

 

缓存

这里做个简历的例子

这里的缓存 就是减少数据库的查询 

什么呢  比如网站的定义  网站名字  网站的版权 网站的配置信息 也可以是一些经常读取 但是不经常改变的数据

 

index.php

<?
include "global.php";  //加载公共文件 比如数据库文件。

$f=dirname(__FILE__);

if (file_exists($f."/cache/head.inc.php")) { //如果文件存在
include $f."/cache/head.inc.php";
echo '缓存';
}
else  //如果不存在
{
//$head_array=$db->query("select * from web_inc"); //查询数据库
$head_array=array(1,2,3,4,5);    //这里假设取得的数据库信息。
$v = var_export($head_array, TRUE);   //var_export 函数
$file = "<?\n\$head_array=".$v."\n?>\n";
file_put_contents($f."/cache/head.inc.php",$file,LOCK_EX);
echo '第一次访问';
}

 

//下面就是数据的调用
print_r($head_array);
//如果数据库有改动 删除 /cache/head.inc.php 文件即可。

?>

 

 

 

<?

这里演示的    比如网站的主页  1天更新1次

ob_start();   //开启缓冲
$f=dirname(__FILE__);
if (file_exists($f."/cache/index.php") && filemtime($f."/cache/index.php")+86400>time() ) { //如果文件存在 并且时间在1天之内

echo file_get_contents($f."/cache/index.php");
echo "缓存";
exit();
}

//include "global.php";  //加载公共文件

//这里的网站程序程序
echo '网站哦';
 


$info=ob_get_contents();
ob_get_clean();
file_put_contents($f."\cache\index.php",$info,LOCK_EX);
echo $info;
echo '更新。';

?>

 

 

<?

这里演示的    比如友情链接很少改动

 

$f=dirname(__FILE__);

//include "global.php";  //加载公共文件

//这里的网站程序程序

 

if (file_exists($f."/cache/link.inc.php")) { //如果文件存在

$link_array=unserialize(file_get_contents($f."/cache/link.inc.php"));
echo '缓存';
}
else  //如果不存在
{

//$link_array=$db->query("select * from web_link"); //查询数据库
$link_array=array(array(1,2,3),array(4,5,6));

file_put_contents($f."/cache/link.inc.php",serialize($link_array),LOCK_EX);
echo '更新';
}

print_r($link_array);

?>

 

 

亲测。  注意目录权限。。