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

一般缓存文件都放在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";//缓存文件存放的位置

smarty静态缓存的更多相关文章

  1. php静态缓存简单制作

    制作缓存的目的是为了让我们的页面运行更加快速,减少读取数据库内容的次数,给用户更好的体验,为此我们可以使自己的程序做一下缓存,并且设置一个缓存过期的时间,来保证与数据库的一致,当然并不是所有的程序都适 ...

  2. ThinkPHP 3.2.3 数据缓存与静态缓存

    ThinkPHP 3.2.3 中手册中数据缓存的地址是:http://www.kancloud.cn/manual/thinkphp/1835 静态缓存的地址是:http://www.kancloud ...

  3. APP 接口开发及读取静态缓存

    <?php /** * Description: App 接口 * Create date:2015-10-19 13:36 * Author: zhaoyingnan **/ class Re ...

  4. PHP 开发 APP 接口 学习笔记与总结 - 静态缓存

    存储静态缓存即把缓存写入文件. file.php <?php class Cache{ //静态缓存文件后缀名 const EXT = 'txt'; //定义缓存文件存放路径 private $ ...

  5. ThinkPHP第十九天(Ueditor高亮插件、扩展函数载入load、静态缓存)

    1.使用Ueditor编辑器,插入代码后,显示的时候高亮显示,需要调用Ueditor中的第三方插件third-party中的SyntaxHighlighter 调用方法: 引入CSS和JS文件,并调用 ...

  6. PHP 静态缓存

    今天来说说PHP页面的静态缓存. 根据个人理解,由于客户端重复的请求某个页面,导致该页面短时间内被重复请求相同的数据,导致给服务端一定的压力,同时用户访问速度也会变慢.此时如果把这个页面缓存起来,客户 ...

  7. thinkphp的静态缓存,数据缓存,快速缓存,查询缓存

    // 静态缓存 // 'HTML_PATH' 缓存目录,这是个常量不是配置项,在入口文件中定义 // 'HTML_CACHE_ON'     =>    true, // 开启静态缓存 'HTM ...

  8. Thinkphp路由配置和静态缓存规则【原创】

    ThinkPHP框架对URL有一定的规范,所以如果你希望定制你的URL格式的话,就需要好好了解下内置的路由功能了,它能让你的URL变得更简洁和有文化. 首先我们在Common/config.php设置 ...

  9. Thinkphp 缓存和静态缓存局部缓存设置

    1.S方法缓存设置 if(!$rows = S('indexBlog')){ //*$rows = S('indexBlog') $rows = D('blog')->select(); S(' ...

随机推荐

  1. Gym 101064 D Black Hills golden jewels 【二分套二分/给定一个序列,从序列中任意取两个数形成一个和,两个数不可相同,要求求出第k小的组合】

    D. Black Hills golden jewels time limit per test 2 seconds memory limit per test 256 megabytes input ...

  2. codevs——1169 传纸条(棋盘DP)

    2008年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题解  查看运行结果     题目描述 Description 小渊和小 ...

  3. 查看tomcat启动文件都干点啥---Catalina.java

    在前一章查看tomcat启动文件都干点啥---Bootstrap.java中我们得出结论,在Bootstrap中通过反射调用Catalina类中的getServer,start,stop,stopSe ...

  4. ubuntu下virtualbox 共享文件夹 & 访问USB设备

    在Ubuntu 12.04 上为Virtualbox 启用USB 设备支持 Ubuntu安装虚拟机,实现文件和USB的共享 Ubuntu下virtualbox 虚拟xp 访问USB设备

  5. PHP生成月历代码

    <?php /*   Function Written by Nelson Neoh @3/2004.   For those who wants to utilize this code, p ...

  6. htop简介

    htop可谓top的升级版,top不可以鼠标操作,但是htop可以使用鼠标操作 启动方式:命令行下输入htop直接启动,启动后的界面如图所示 操作:可以使用上下左右方向键进行移动查看.可以使用鼠标点击 ...

  7. 使用assembly将maven项目pom.xml中的jar包打包

    参考官方网站:http://maven.apache.org/plugins/maven-assembly-plugin/usage.html 方法一:将pom.xml引入的jar包打到zip文件夹中 ...

  8. 【LeetCode-面试算法经典-Java实现】【139-Word Break(单词拆分)】

    [139-Word Break(单词拆分)] [LeetCode-面试算法经典-Java实现][全部题目文件夹索引] 原题 Given a string s and a dictionary of w ...

  9. 好工具MyEclise2016 CI下载

    地址:http://pan.baidu.com/s/1gfBw9Ab 安装后,点开crack目录,按步骤走. 下面是我安装成功的画面.

  10. WIN SERVER8更改MYSQL的datadir后,数据库启动不起来

    曾经一直都没注意的问题.这次就记录下来吧.假设有相同问题的也当做一个提示 WIN SERVER8更改MYSQL的datadir后,数据库启动不起来,详细原因有二. 首先.先来看一下怎样更改 datad ...