Smarty之單模板多緩存,刪緩存,不緩存

單模板多緩存

根據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);

?>


html

<!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;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章