Smarty模板保留缓存
<?php //缓存 //注:使用缓存需要用到这几个方法: //(ob_start(开启内存缓存); ob_flush(清除内存缓存);) //file_exists这个方法是判断文件是否存在 //assign("接受值"); display("传给另一个页面值"); 这个方法是一对要配合着用 //定义一个该页面的缓存文件路径交给$filename $filename = "../cache/huancun_wenjian.html"; //设置一个缓存时间 $time = 5; //判断缓存文件是否存在 // || if(!file_exists($filename) || filemtime($filename)+$time<time()){ //开启内存缓存 ob_start(); include("../init.inc.php"); include("../DBDA.php"); $db = new DBDA(); $sql = "select * from nation"; $attr = $db->Query($sql); $smarty->assign("nation",$attr); $smarty->display("huancun.html"); //把内存里面的内容读出来 交给$nr $nr = ob_get_contents(); //将读到的内容存放到缓存文件 //将内存$nr里面所有读到的内容扔到缓存文件里面去 file_put_contents($filename,$nr); //清楚内存缓存 ob_flush(); echo "<a href='#'>我是缓存我只出现一次</a>"; }else{ //如果缓存文件存在就显示缓存文件 include($filename); }
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> </head> <body> <table width="100%" border="1" cellpadding="0" cellspacing="0"> <tr> <td>代号</td> <td>名称</td> </tr> <{foreach $nation as $v}> <tr> <td><{$v[0]}></td> <td><{$v[1]}></td> </tr> <{/foreach}> </table> </body> </html>
效果图
刷新后走的缓存页面
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?