Smarty静态缓存

2018-06-22 05:17:17来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

缓存能让程序访问起来更加快速,调数据库的数量变少,不能实时的跟数据库同步,

一般缓存文件都放在smarty文件下cach文件夹中;

建立缓存的PHP和HTML文件;

先编辑PHP文件来查询显示数据库当中的文件;

复制代码
<?php
//定义 相对于这个页面的一个文件保存路径
$filname ="../cache/huancun.html";


//查询数据并显示
include("../init.inc.php");
include("../dbda.class.php");
$db= new dbda();
$sql = "select * from car";
$arr = $db->query($sql);

$smarty->assign("shuzu",$arr);
$smarty->display("huancun.html");//调用display模版显示
复制代码

在建立HTML用来显示的样式

复制代码
<h1>数据列表</h1>
<table width="100%" border="1" cellpadding="0" cellspacing="0">
    <tr>
        <td>代号</td>
        <td>名称</td>
        <td>操作</td>
    </tr>
  <{foreach $shuzu as $v}>
      <tr>
        <td><{$v[0]}></td>
        <td><{$v[1]}></td>
        <td>操作</td>
    </tr>
  <{/foreach}>
复制代码

显示结果如下

 

然后在PHP文件中加入缓存的代码; 打开网页就会显示,刷新一遍就会直接取问价夹中找了

复制代码
<?php
//定义 相对于这个页面的一个文件保存路径
$filname ="../cache/huancun.html";//缓存文件存放的位置

//判断缓存文件是否存在,如果缓存文件存在直接调用缓存,如果缓存文件不存在,重新缓存
if(file_exists($filname))//判断文件是否存在
{
    include($filname);//直接拿来显示
    }
    else{
        //重新缓存
        ob_start();//开启内存缓存
        
        //查询数据并显示
include("../init.inc.php");
include("../dbda.class.php");
$db= new dbda();
$sql = "select * from car";
$arr = $db->query($sql);

$smarty->assign("shuzu",$arr);
$smarty->display("huancun.html");//调用display模版显示
        
//从缓存里取内容
$str = ob_get_contents();        
file_put_contents($filname,$str);//保存缓存
        
        ob_flush();//关闭内存缓存
        echo"WOWKWJWJWKJWKWJKWJWKWJWKJWKJW";
        
        }
复制代码

实线缓存后就会存到以下的文件夹中;

加缓存时间

$time = 10;//缓存有效期10s


//判断缓存文件是否存在,如果缓存文件存在直接调用缓存,如果缓存文件不存在,重新缓存
if(file_exists($filname) && filemtime($filname)+$time>=time())//判断文件是否存在 上一次修改时间加个条件修改时间大于当前时间。

 

 

给页面加分页

复制代码
$sall = "select count(*) from car ";
$zts = $db->Strquery($sall);
include("../page.class.php");
$page = new Page($zts,5);


$smarty->assign("fpage",$page->fpage());
复制代码

让页面默认选第一页; 因为不可能只访问一个一页面所以要实现多个页面;

 

复制代码
$p = 1;
if(!empty($_GET["page"]))
{
   $p = $_GET["page"];
}
//定义 相对于这个页面的一个文件保存路径
$filname ="../cache/huancun{$p}.html";//缓存文件存放的位置
复制代码

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:ThinkPHP框架知识的注意点

下一篇:Laravel5中Cookie的使用