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<time()){
//创建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页面

<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
<style type="text/css">

</style>
<script type="text/javascript">
    function abc(){
    }
</script>
<{config_load file="../config/my.conf " section="index"}>
<body bgcolor=‘<{ #bgcolor# }>‘>
<h3><{#title#}></h3>

<table border="1" width="800" align="center">
<caption>用户信息表</caption>
            <th align="center">index</th>
            <th align="center">iteration</th>
            <{foreach $tdname as $val}>
                            <th align="center"><{$val}></th>
            <{/foreach}>
            <{section name="one" loop=$users }>        
                    <{if $smarty.section.one.first}>
                            <tr bgcolor="red" align="center">
                    <{elseif $smarty.section.one.last}>
                            <tr bgcolor="yellow" align="center">
                    <{elseif $smarty.section.one.iteration is even}>
                            <tr bgcolor="pink" align="center">
                    <{else}>
                            <tr bgcolor="green" align="center">
                    <{/if}>                    
                                <td><{$smarty.section.one.index}></td>
                                <td><{$smarty.section.one.iteration}></td>
                                <td><{$users[one].id}></td>
                                <td><{$users[one].username}></td>
                                <td><{$users[one].password}></td>
                                <td><{$users[one].email}></td>
                    </tr>
                    <{sectionelse}>
                    没有用户查询出来!
            <{/section}>
            <tfoot><tr><td colspan="6" align="center">
            <{$fpage}>
            </td></tr></tfoot>
</table>
</body>

浏览器页面

时间: 2024-08-11 07:44:29

PHP Smarty 页面静态化加分页和缓存控制的相关文章

分享常见的几种页面静态化的方法

什么是PHP静态化PHP静态化的简单理解就是使网站生成页面以静态HTML的形式展现在访客面前,PHP静态化分纯静态化和伪静态化,两者的区别在于PHP生成静态页面的处理机制不同. 为什么要让网页静态化 一.加快页面打开浏览速度,静态页面无需连接数据库打开速度较动态页面有明显提高:二.有利于搜索引擎优化SEO,Baidu.Google都会优先收录静态页面,不仅被收录的快还收录的全:三.减轻服务器负担,浏览网页无需调用系统数据库:四.网站更安全,HTML页面不会受php相关漏洞的影响: 观看一下大一点

PHP实现HTML页面静态化的方法

随着网站的内容的增多和用户访问量的增多,无可避免的是网站加载会越来越慢,受限于带宽和服务器同一时间的请求次数的限制,我们往往需要在此时对我们的网站进行代码优化和服务器配置的优化. 一般情况下会从以下方面来做优化 动态页面静态化 优化数据库 使用负载均衡 使用缓存 使用CDN加速 现在很多网站在建设的时候都要进行静态化的处理,为什么网站要进行静态化处理呢?我们都知道纯静态网站是所有的网页都是独立的一个html页面,当我们访问的时候不需要经过数据的处理直接就能读取到文件,访问速度就可想而知了,而其对

六、smarty-缓存控制前的页面静态化原理

页面静态化可以实现优化服务,对大流量访问网站非常至关重要 为什么页面静态化, 1.  不去执行数据库连接 2.  不去执行SQL语句 设置按时间更新, 1.  按时间更新,如果缓存文件设置1小时 如下为页面静态化原理实例: //内容分页显示实例 <?php $cachefile = "demo_".$get["page"].".html"; //定义的缓存文件用于存放静态页面, $get["page"]表示将每一分页都缓

掌握常见的几种页面静态化的方法

常说的页面静态化分为两种,一种是伪静态,即url 重写,一种是真静态化.我们以真静态化为主来讲讲. 什么是PHP静态化 PHP静态化的简单理解就是使网站生成页面以静态HTML的形式展现在访客面前,PHP静态化分纯静态化和伪静态化,两者的区别在于PHP生成静态页面的处理机制不同. 为什么要让网页静态化  一.加快页面打开浏览速度,静态页面无需连接数据库打开速度较动态页面有明显提高:  二.有利于搜索引擎优化SEO,Baidu.Google都会优先收录静态页面,不仅被收录的快还收录的全:  三.减轻

浅谈——页面静态化

现在互联网发展越来越迅速,对网站的性能要求越来越高,也就是如何应对高并发量.像12306需要应付上亿人同时来抢票,淘宝双十一--所以,如何提高网站的性能,是做网站都需要考虑的. 首先网站性能优化的方面有很多:1,使用缓存,最传统的一级二级缓存:2,将服务和数据库分开,使用不同的服务器,分工更加明确,效率更加高:3,分布式,提供多台服务器,利用反向代理服务器nginx进行反向代理,将请求分散开来:4,数据库的读写分离,不同的数据库,将读操作和写操作分开,并实时同步即可:5,分布式缓存,使用memc

[项目构建 九]babasport 页面静态化技术Freemarker技术的介绍及使用实例.

一.FreeMarker简介 1.动态网页和静态网页差异 在进入主题之前我先介绍一下什么是动态网页,动态网页是指跟静态网页相对应的一种网页编程技术.静态网页,随着HTML代码的生成,页面的内容和显示效 果就不会再发生变化(除非你修改页面代码).而动态网页则不然,页面代码虽然没有发生变化,但是显示的内容却是可以随着时间.环境或者数据库操作的结果而 发生相应的变化.简而言之,动态网页是基本的HTML语法规范与java.VB.VC等高级程序设计语言.数据库编程等多种技术的融合,以实现对网站内容 和风格

C# MVC 页面静态化导致的问题

在设置页面静态化的路由,代码如 //静态路由 routes.MapRoute( name: "html", url: "{controller}/{action}.html", defaults: new { controller = "Main" , action = "Index" } ); 需要将静态的html文件处理程序映射到aspnet_isapi.dll处理. 可以在IIS中添加如图: 也可以在web.Config

网站页面静态化与Apache调优(图)

------------------------------------------------------------------------------------------------------- 概念=> 静态网址(静态页面):  1.利于seo 2.访问速度块 3.防止sql注入 动态网址(php页面,可传参数):1.不利seo 2.访问速度慢 3.有被注入sql可能 伪静态(对动态网址的重写):  1.利于seo 2.防止注入 3.仍然访问数据库,访问速度没有变化 [email 

动态页面静态化的实现

首先,应该明确动态页面与静态页面之间的区别,为什么静态页面的加载要比动态的快. PHP文件的执行阶段是:语法分析——>编译——>运行. 动态是执行这整个过程. 静态(只是一个纯静态的 html 文件),跳过了分析和编译的步骤,直接运行. (优化页面响应时间的常见四种方法:动态页面静态化,优化数据库,使用负载均衡,使用缓存..) 静态化用于那些不需要经常变动的页面,生成一个静态页面供用户访问,以减少服务器脚本的响应.计算时间. PHP静态化-->伪静态:可以通过设置apache服务器得到,