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>

效果图

刷新后走的缓存页面

时间: 2024-08-06 03:34:37

Smarty模板保留缓存的相关文章

(13) PHP 随笔---Smarty模板引擎 缓存的高级应用 22

◇缓存集合(单模板多缓存的升级用法):一个模板可以变着花样的生成许多缓存文件 ◇最主要的代码为: $smarty -> display('cacheList.html',$brand."|".$price."|".$network."|".$big); ◇它会将各种参数进行排列组合,生成所有的缓存文件的组合,供用户浏览. ◇缓存删除: ◇clearCache(模板名称)     //删除该模板对应的全部缓存文件   ◇clearCache(

Smarty 模板引擎下缓存设置

缓存:就是将用户重复使用的内容进行缓存生成HTML内容. 缓存类型 全局缓存: 将整个页面内容都生成静态内容. Cache_dir: 缓存目录配置 Cache_lifetime:缓存的有效周期 Cacheing:设置是否开启缓存 局部缓存: 控制整个页面中的某个内容缓存,或者某个内容不缓存. insert函数调用的内容不缓存: 定义insert类型的函数: Smarty 2.x版本: Function insert_插件名(参数列表){ 功能代码 } Smarty 3.x版本: Function

命名空间namespace、smarty使用(视图分离,MVC)、smarty模板语法、smarty缓存、MVC模式

一.命名空间:namespace 命名空间 可以理解为逻辑上的使用,为了防止重名 namespace :关键字 加载:require_once();//加载一次 include_once() 申明命名空间注意:名称空间一定是在最顶部 在他上面不能有任何内容,名称空间申明不能写在类的内部 use App\Stu; 引入,导入 名称空间\引入类名 as:取别名 二.smarty使用 smarty是一个使用php写出来的模板引擎,拥有独立简单的模板语法,它实现了逻辑代码与模板的分离,把原本HTML与P

Smarty单模板多缓存

Smarty单模板多缓存 单模板多缓存 在生成缓存.判断缓存是否存在时,增加第二个参数,会根据第二个参数来确定对应的缓存文件 清除缓存

(12) PHP 随笔---Smarty模板引擎 单模板多缓存、局部不缓存 20--21

◇单模板多缓存:一个模板生成多个缓存文件. ◇同一个模板在使用时会生成不同的页面实现,如果开启缓存的话,则通过同一个模板生成的多个实例都需要被缓存,这样就会出现问题. ◇解决办法-->在调用display()方法时,通过第二个可选参数中提供一个只,这个值为每一个实例指定的一个唯一标识符,就几个不同的标示符就有几个缓存页面.例如: $smarty -> display('index.tpl',$_SERVER['REQUEST_URL']); ◇局部不缓存(3种方法):缓存页面可以把全部页面数据

smarty模板基础3 *缓存数据*

缓存数据,这个并不是暂存的缓存,而是写入了内存的缓存 通过一个例子来书写:缓存数据 一.书写php和html页面的基本功能 既然是用smarty模板,那么前端和后端要分开写了 (1)php页面 <?php $filename = "../cache/huancun.html"; //这个是放缓存的页面(缓存的不是代码,而是页面的源信息) include("../init.inc.php"); //引入入口文件 include("../DBDA.php

前端学PHP之Smarty模板引擎

前面的话 对PHP来说,有很多模板引擎可供选择,但Smarty是一个使用PHP编写出来的,是业界最著名.功能最强大的一种PHP模板引擎.Smarty像PHP一样拥有丰富的函数库,从统计字数到自动缩进.文字环绕以及正则表达式都可以直接使用,如果觉得不够,SMARTY还有很强的扩展能力,可以通过插件的形式进行扩充.另外,Smarty也是一种自由软件,用户可以自由使用.修改,以及重新分发该软件.本文将详细介绍Smarty模板引擎 概述 Smarty是一个php模板引擎.更准确的说,它分离了逻辑程序和外

smarty模板基础1

smarty模板的作用可以让前端和后端分离(也就是前端的显示页面和后端的php代码). smarty模板的核心是一个类,下载好的模板中有这么几个重要的文件夹 (1)libs核心文件夹(2)int.inc.php这是入口文件(3)plugins:自己写的插件文件夹(4)templates_c:存放编译好的文件(5)int.inc.php这是入口文件(6)定义好常量:不能修改 一.如何实现前后分离的原理:核心是一个类1.左分隔符{2.右分隔符}3.数组(默认空数组):存储变量 4.提供一个方法:向模

smarty模板基础(部分转)

首先需要建一个smarty的类文件.php <?php class smarty { public $left = "{";//左分隔符 public $right = "}";//右分隔符 public $arr = array(); //存储变量 //向模板里面注册变量 function assign($key,$value) { $this->arr[$key] = $value; } //显示模板 function display($name)