php分页缓存,PHP Smarty 页面静态化加分页和缓存控制

PHP页面<?php

//打开输出控制缓冲

ob_start();

//新建模板文件

$file = "./cache/newindex{$_GET['page']}.html";

$cachetime = 10;

const  DSN = 'mysql:host=localhost;dbname=test';

const   DBUSER = 'root';

const   DBPWD     = 'root';

//模板不存在或者超过缓存时间才生成缓存模板

if(!file_exists($file) || filemtime($file)+$cachetime

//创建smarty对象

require_once './libs/Smarty.class.php';

require_once 'page.class.php';

//定义根目录

define('ROOT', str_replace("\\", "/",dirname(__FILE__))."/");

//实例化Smarty类

$smarty=new Smarty();

//设定定界符

$smarty->left_delimiter="

$smarty->right_delimiter="}>";

//设置为false 定界符号左右可以有空格

$smarty->auto_literal = false;

//添加一个插件的目录

//$smarty->setPluginsDir(ROOT."/libs/myplugins/");

//注意添加一个插件,要把系统默认设置的路径加入 否则不能使用默认系统的插件

$smarty->setPluginsDir(array(

ROOT."/libs/plugins/",//系统默认设置的路径

ROOT."/libs/myplugins/",//自定义的

));

//连接数据库

try{

$pdo = new PDO(DSN, DBUSER,DBPWD);

}catch(PDOException $e){

echo "数据库连接失败:".$e->getMessage();

exit;

}

$query = "select id, username, password,email from users limit 3";

$stmt = $pdo->prepare($query);

$stmt ->execute();

$users = $stmt->fetchAll(PDO::FETCH_ASSOC);

$smarty->assign('users',$users);

//var_dump($users);

$query = "desc users";

$stmt = $pdo->prepare($query);

$stmt ->execute();

$tdname = $stmt->fetchAll(PDO::FETCH_COLUMN);

//var_dump($tdname);

$page = new Page(20, 2);

$smarty->assign('tdname',$tdname);

$smarty->assign('fpage',$page->fpage());

//变量输出

$smarty->display('hello.tpl');

//返回输出缓冲区的内容

$content = ob_get_contents();

//将一个字符串写入文件

file_put_contents("./cache/newindex{$_GET['page']}.html", $content);

//冲刷出(送出)输出缓冲区中的内容

ob_flush();

echo "缓存文件不存在,查询数据库,再生成缓存文件,输出到浏览器";

}else{

include $file;

echo "直接加载缓存文件";

}

?>

模板tpl页面

function abc(){

}

用户信息表

没有用户查询出来!

浏览器页面

a53505f6b26a47efb4a4aa08574f87d7.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值