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);	
}

  

原文地址:https://www.cnblogs.com/hamilton/p/5709183.html