PHP smarty缓存

缓存一个页面

test.php

<?php

//定义该页面缓存文件存放的路径
$filename = "../cache/cachetest.html";

//定义缓存有效期
$cachetime = 5;

//判断缓存文件是否存在
if(!file_exists($filename) || filemtime($filename)+$cachetime<time())
{
    //开启内存缓存
    ob_start();
    
    include("../init.inc.php");
    include("../DBDA.php");
    $db = new DBDA();
    
    $sql = "select * from car";
    
    $attr = $db->Query($sql);
    
    $smarty->assign("car",$attr);
    $smarty->display("test.html");
    
    //从内存缓存中获取页面代码
    $content = ob_get_contents();
    
    //将获取到的内容存放到缓存文件
    file_put_contents($filename,$content);
    
    //清掉内存缓存
    ob_flush();
    
    echo "######################################";

}
else
{
    include($filename);
}

test.html

<body>
<h1>汽车信息</h1>
<table width="100%" border="1" cellpadding="0" cellspacing="0">
    <tr>
        <td>代号</td>
        <td>汽车名称</td>
        <td>油耗</td>
        <td>价格</td>
    </tr>
    
    <{foreach $car as $v}>
    <tr>
        <td><{$v[0]}></td>
        <td><{$v[1]}></td>
        <td><{$v[4]}></td>
        <td><{$v[7]}></td>
    </tr>
    <{/foreach}>
    
</table>
</body>

分页缓存

testa.php

<?php

//取当前页
$p=1;
if(!empty($_GET["page"]))
{
    $p = $_GET["page"];
}
//定义缓存文件存放路径
$filename = "../cache/cahetesta{$p}.html";

//判断
if(!file_exists($filename) || filemtime($filename)+30<time())
{
    ob_start();
    
    
    include("../init.inc.php");
    include("../DBDA.php");
    $db = new DBDA();
    
    include("page.class.php");
    
    $szs = "select count(*) from car";
    $zs = $db->StrQuery($szs);
    
    $page = new Page($zs,5);
    $xinxi = $page->fpage();
    
    $sql = "select * from car ".$page->limit;
    
    $attr = $db->Query($sql);
    
    $smarty->assign("car",$attr);
    $smarty->assign("xinxi",$xinxi);
    $smarty->display("testa.html");
    
    $nr = ob_get_contents();
    
    file_put_contents($filename,$nr);
    
    ob_flush();
    
    echo "################################################";
}
else
{
    include($filename);
}

testa.heml

<body>
<h1>汽车信息</h1>
<table width="100%" border="1" cellpadding="0" cellspacing="0">
    <tr>
        <td>代号</td>
        <td>汽车名称</td>
        <td>油耗</td>
        <td>价格</td>
    </tr>
    
    <{foreach $car as $v}>
    <tr>
        <td><{$v[0]}></td>
        <td><{$v[1]}></td>
        <td><{$v[4]}></td>
        <td><{$v[7]}></td>
    </tr>
    <{/foreach}>
    
</table>
<div><{$xinxi}></div>
</body>

原文地址:https://www.cnblogs.com/yy01/p/5714662.html