單模板多緩存
根據id的不同生成不同的的緩存頁面;
例如商品頁,一個模板 goods_id不同,取出商品不同
但普通緩存手法,就商品不變了
解決方法:display和isCached裏添加goods_id參數
<?php
/*單模板 多緩存
display和isCached裏添加goods_id參數*/
require('../../smarty3/libs/Smarty.class.php');
require('./mysmarty.class.php');
$smarty=new MySmarty();
$smarty->caching=true;
$smarty->cache_lifetime=20;
$smarty->cache_dir='./cache';
// 根據goods_id保存不同的頁面緩存
$goods_id=$_GET['goods_id']+0;
//取出一個商品,[商品頁]
if(!$smarty->isCached('temp7.html',$goods_id)){
$conn=mysqli_connect('localhost','root','123456','boolshop');
$sql ='set names utf8';
mysqli_query($conn,$sql);
$sql ='select * from goods where goods_id='.$goods_id;
$rs=mysqli_query($conn,$sql);
// 取出單行
$row=mysqli_fetch_assoc($rs);
$smarty->assign('goods',$row);
echo '我不是緩存喲~ o(* ̄▽ ̄*)ブ ';
}
$smarty->display('temp7.html',$goods_id);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>temp7</title>
</head>
<body>
<table>
<tr><td>商品號</td><td>商品名</td></tr>
<tr><td>{$goods.goods_id}</td><td>{$goods.goods_name}</td></tr>
</table>
</body>
</html>
刪緩存
//刪緩存,2個參數,模板名,緩存id;如果不加id就把這個模板的緩存都刪了
$smarty->clearCache('temp7.html',$goods_id);
不緩存
//加了這行強制不緩存開啓
$smarty->force_cache=true;