缓存
这里做个简历的例子
这里的缓存 就是减少数据库的查询
什么呢 比如网站的定义 网站名字 网站的版权 网站的配置信息 也可以是一些经常读取 但是不经常改变的数据
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);
?>
亲测。 注意目录权限。。