smarty静态缓存
缓存能让程序访问起来更加快速,调数据库的数量变少,不能实时的跟数据库同步,
一般缓存文件都放在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静态缓存的更多相关文章
- php静态缓存简单制作
制作缓存的目的是为了让我们的页面运行更加快速,减少读取数据库内容的次数,给用户更好的体验,为此我们可以使自己的程序做一下缓存,并且设置一个缓存过期的时间,来保证与数据库的一致,当然并不是所有的程序都适 ...
- ThinkPHP 3.2.3 数据缓存与静态缓存
ThinkPHP 3.2.3 中手册中数据缓存的地址是:http://www.kancloud.cn/manual/thinkphp/1835 静态缓存的地址是:http://www.kancloud ...
- APP 接口开发及读取静态缓存
<?php /** * Description: App 接口 * Create date:2015-10-19 13:36 * Author: zhaoyingnan **/ class Re ...
- PHP 开发 APP 接口 学习笔记与总结 - 静态缓存
存储静态缓存即把缓存写入文件. file.php <?php class Cache{ //静态缓存文件后缀名 const EXT = 'txt'; //定义缓存文件存放路径 private $ ...
- ThinkPHP第十九天(Ueditor高亮插件、扩展函数载入load、静态缓存)
1.使用Ueditor编辑器,插入代码后,显示的时候高亮显示,需要调用Ueditor中的第三方插件third-party中的SyntaxHighlighter 调用方法: 引入CSS和JS文件,并调用 ...
- PHP 静态缓存
今天来说说PHP页面的静态缓存. 根据个人理解,由于客户端重复的请求某个页面,导致该页面短时间内被重复请求相同的数据,导致给服务端一定的压力,同时用户访问速度也会变慢.此时如果把这个页面缓存起来,客户 ...
- thinkphp的静态缓存,数据缓存,快速缓存,查询缓存
// 静态缓存 // 'HTML_PATH' 缓存目录,这是个常量不是配置项,在入口文件中定义 // 'HTML_CACHE_ON' => true, // 开启静态缓存 'HTM ...
- Thinkphp路由配置和静态缓存规则【原创】
ThinkPHP框架对URL有一定的规范,所以如果你希望定制你的URL格式的话,就需要好好了解下内置的路由功能了,它能让你的URL变得更简洁和有文化. 首先我们在Common/config.php设置 ...
- Thinkphp 缓存和静态缓存局部缓存设置
1.S方法缓存设置 if(!$rows = S('indexBlog')){ //*$rows = S('indexBlog') $rows = D('blog')->select(); S(' ...
随机推荐
- (二)docker的部署安装,配置,基础命令
一.docker 的安装部署 这里不过多介绍,下面这两个linux发型版 安装可以参考 ubuntu的 docker-ce安装 centos7的 docker-ce安装 二.docker配置文件 重要 ...
- hdu 4990(数学,等比数列求和)
Reading comprehension Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Ot ...
- hdu3715 2-sat+二分
Go Deeper 题意:确定一个0/1数组(size:n)使得满足最多的条件数.条件在数组a,b,c给出. 吐槽:哎,一水提,还搞了很久!关键是抽象出题目模型(如上的一句话).以后做二sat:有哪些 ...
- IE/FF/Chrome下document.documentElement和document.body的 scrollHeight/scrollTop/clientHeight 以及判断滚动条是否已拉到页面最底部
DTD已声明 IE document.documentElement.scrollHeight 浏览器所有内容高度 ,document.body.scrollHeight 浏览器所有内容高度 docu ...
- 使用Powerdesigner生成设计的数据表(一张或多张)的测试数据
设计表完成以后,我们需要生成一些测试数据,可以直接更新到数据库中,下面我们就来试试: 第一步:建立需要的Profiles测试文件,[Model]--[Test Data Profiles],如图所示: ...
- TreeMap和TreeSet的区别与联系
TreeMap 和 TreeSet 是 Java Collection Framework 的两个重要成员,其中 TreeMap 是 Map 接口的常用实现类,而 TreeSet 是 Set 接口的常 ...
- Ruby on rails初体验(二)
体验一中添加了一个最基本的支架和一个简单的数据迁移,实现了一个基本的增删改查的功能列表.体验二中要在次功能上继续丰满一下功能.实现如下效果: 在每个公司中都包含有不同的部门,按照体验一中的方法,添加一 ...
- 从C的声明符到Objective-C的Blocks语法
原文链接:http://nilsou.com/blog/2013/08/21/objective-c-blocks-syntax/ 在这个post中,我先以C简单和内置复杂的声明开始,直到我们开始接触 ...
- hdu1862
//开始把student stu[100000]放置在main()中导致栈溢出,所以必须放在全局位置, //可以调用数组的排序函数sort,包含头文件#include<algorithm> ...
- 谈论程序中的token
-> //指针,一旦符号分开就会成以下两个意思,我们一定要注意符号 - //减号 > //大与 int a,big; if(x>big) big = x; C语言以及一些其它语言会自 ...