使用smarty 缓存的简单例子
2008-09-22 15:38
393 查看
<?php
require "./inc/class/smarty.php";
require "./inc/class/db.php";
$smarty->caching = true;
$db = new Db();
if(!$smarty->is_cached('index.html'))
{
$contents = $db->fetchOne("SELECT username FROM user LIMIT 0,1");
$smarty->assign("content",$contents);
}
$smarty->display("index.html");
?>
需要建一个user表。测试的话里面只有一个字段username都可 假设内容是test
上面的是
index.php里面的内容
db类是自己封装的,按个人情况来写
index.html里面只有一句话
<html><body>
{$content}</body></html>
输出 test
这个时候 cache里面多了一个以index.html结尾的缓存文件
内容是
<html><body>
test</body></html>
如果你刷新页面的话。第二次会调用这个缓存文件。
可以试着把这个缓存文件的内容改一下就知道了。
<?php
require "./inc/class/smarty.php";
require "./inc/class/db.php";
$db = new Db();
if($_REQUEST["action"] == 'update')
{
$sql = "UPDATE user SET username = 'ggs' WHERE id = 2";
$db->query($sql);
$folder = opendir("cache");
/* 这是正确地遍历目录方法 */
while (false !== ($file = readdir($folder))) {
if ($file == '.' || $file == '..')
{
continue;
}
else
{
unlink("cache/".$file);
}
}
}
$smarty->display("update.html")
?>
update.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<BODY>
<form action = '#' method = 'post'>
<input type = 'submit' value = 'update' />
<input type = 'hidden' id = 'action' name = 'action' value = 'update' />
</form>
</BODY>
</HTML>
update.html
当提交表单之后。
update.php 跟新了数据并且
清除了缓存文件。
你再次访问index.php的时候。里面的内容就改变了。
require "./inc/class/smarty.php";
require "./inc/class/db.php";
$smarty->caching = true;
$db = new Db();
if(!$smarty->is_cached('index.html'))
{
$contents = $db->fetchOne("SELECT username FROM user LIMIT 0,1");
$smarty->assign("content",$contents);
}
$smarty->display("index.html");
?>
需要建一个user表。测试的话里面只有一个字段username都可 假设内容是test
上面的是
index.php里面的内容
db类是自己封装的,按个人情况来写
index.html里面只有一句话
<html><body>
{$content}</body></html>
输出 test
这个时候 cache里面多了一个以index.html结尾的缓存文件
内容是
<html><body>
test</body></html>
如果你刷新页面的话。第二次会调用这个缓存文件。
可以试着把这个缓存文件的内容改一下就知道了。
<?php
require "./inc/class/smarty.php";
require "./inc/class/db.php";
$db = new Db();
if($_REQUEST["action"] == 'update')
{
$sql = "UPDATE user SET username = 'ggs' WHERE id = 2";
$db->query($sql);
$folder = opendir("cache");
/* 这是正确地遍历目录方法 */
while (false !== ($file = readdir($folder))) {
if ($file == '.' || $file == '..')
{
continue;
}
else
{
unlink("cache/".$file);
}
}
}
$smarty->display("update.html")
?>
update.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<BODY>
<form action = '#' method = 'post'>
<input type = 'submit' value = 'update' />
<input type = 'hidden' id = 'action' name = 'action' value = 'update' />
</form>
</BODY>
</HTML>
update.html
当提交表单之后。
update.php 跟新了数据并且
清除了缓存文件。
你再次访问index.php的时候。里面的内容就改变了。
相关文章推荐
- objc_runtime使用方法的几个简单例子(转)
- libevent专题1-Libevent使用例子,从简单到复杂
- 使用openmpi来计算圆周率的简单例子
- PHP Smarty模版简单使用方法
- 使用NSURLProtocol实现UIWebView的离线缓存的简单实现
- memcached 的容易命令和Java 使用 memcached 的简单例子
- JVisualvm监控不到本地Tomcat问题总结和简单使用例子
- java 使用 comet4j 主动向客户端推送信息 简单例子
- 关于使用PRO*C编程的一些简单说明和例子
- springboot 缓存ehcache的简单使用
- 一个简单例子了解使用互斥量线程同步
- Spring中配合hibernate使用的简单例子
- 三方图表库hellocharts使用简单例子归纳(感觉比MpAndroidchart好用)
- 一个简单的使用XMLHttpRequest获得服务器数据的例子
- 关于java中Properties类的简单的使用例子
- 【Echarts】百度Echarts的使用入门+两个简单的小例子+心得
- smarty详解一:简介、安装、快速入门、变量的简单使用
- 使用intellij idea 搭建springmvc例子【简单景点登录】
- 使用jxl对excel写文件简单例子
- Apache Lucence 使用的一个简单例子