smarty缓存技术
在PHP页面
定义该页面缓存文件存放的路径
$filename="../cache/cachecar{$p}.html";
定义缓存的有效期
$cachetime=10;
判断缓存文件是否存在 文件上次修改时间filemtime()
if(!file_exists($filename) || filemtime($filename)+$cachetime<time())
{
开启内存缓存,把页面的所有输出放到内存中
ob_start();
从内存缓存中获取页面代码
$content=ob_get_contents();
将获取到的内容存放在缓存文件
file_put_contents($filename,$content);
清掉内存缓存
ob_flush();
}
else
{
include($filename);
}
一个分页显示的应用缓存技术的实例
<?php
//取当前页
$p=1;
if(!empty($_GET["page"]))
{
$p=$_GET["page"];
}
//定义该页面缓存文件存放的路径
$filename="../cache/cachecar{$p}.html";
//定义缓存的有效期
$cachetime=10;
//判断缓存文件是否存在 文件上次修改时间filemtime()
if(!file_exists($filename) || filemtime($filename)+$cachetime<time())
{
//开启内存缓存,把页面的所有输出放到内存中
ob_start();
include("../init.inc.php");
include("../DBDA.php");
include("../page.class.php");
$db=new DBDA();
//查总条数
$szs="select count(*) from car";
$zs=$db->StrQuery($szs);
//造分页对象
$page=new Page($zs,5);
$sql="select * from car ".$page->limit;
$car=$db->Query($sql);
//取分页信息
$xinxi=$page->fpage();
$smarty->assign("car",$car);
$smarty->assign("xinxi",$xinxi);
$smarty->display("huancun.html");
//从内存缓存中获取页面代码
$content=ob_get_contents();
//将获取到的内容存放在缓存文件
file_put_contents($filename,$content);
//清掉内存缓存
ob_flush();
echo "************************************";
}
else
{
include($filename);
}

浙公网安备 33010602011771号