用libtemplate实现静态网页生成
2015-01-24信息快讯网
有很长一段时间我到处问别人怎么实现静态网页,还向唠叨提过问题,而如今,我终于想出了一个很简单的办法,那就是用libtemplate来实现它。
大家看:http://doc.iwind.org
下面我就如何实现静态网页输出谈一谈。
1,修改libtemplate.
加入两个函数
//将分析结果保存到文件中去
function savetofile ($dir,$varname){
$data=$this->finish($this->get_var($varname));
$fp=fopen($dir,"w+");
fwrite($fp,$data);
}
函数中的dir是我们要保存在文件的地方。varname则是libtemplate中$target,使用如下:
$tpl->set_file("main","main.tpl");
...
$tpl->parse("mains","main");
$tpl->savetofile("html/main.html","mains");
相信懂libtemplate的读者很容易理解这些.
//清除已赋值数组
function renew(){
$this->varkeys=array();
$this->varvals=array();
$this->file=array();
}
这样就可以清除前面模板分析的影响.
2,实现静态输出.
如果输出的是单文件正如上面的一个例子.
$tpl->set_file("main","main.tpl");
...
$tpl->parse("mains","main");
$tpl->savetofile("html/main.html","mains");
但一旦我们更改了文章显示的模板,如何使以前生成的静态网页如何快速更新呢?显然要循环输出.例子如下:
html_info(){//单个文件,只是一个相似的例子
global $tpl;
$tpl->set_file("main","main.tpl");
...
$tpl->parse("mains","main");
$tpl->savetofile("html/main.html","mains");
$tpl->renew();//至关重要
}
//循环输出
for($i=0;$i<$total;$i++){
...
html_info;
}
所以说实现生成静态页面是很简单的.更新也非想象中那么复杂.
(完)
dede全站URL静态化改造[070414更正]
用PHP实现的生成静态HTML速度快类库
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
实现dedecms全站URL静态化改造的代码
理解PHP5中static和const关键字的区别
生成静态页面的php函数,php爱好者站推荐
使用 eAccelerator加速PHP代码的目的
mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法
实现了一个PHP5的getter/setter基类的代码
使用apache模块rewrite_module (转)
再次研究下cache_lite
cache_lite试用
MySQL中create table语句的基本语法是
PHP has encountered an Access Violation
用php实现像JSP,ASP里Application那样的全局变量
用PHP实现WEB动态网页静态
初探PHP5
Content-type 的说明
用libTemplate实现静态网页的生成
PHPlet在Windows下的安装
第七节 类的静态成员 [7]
example2.php
example1.php
Extended CHM PHP 语法手册之 DIY
ftp类(example.php)
用PHP制作静态网站的模板框架
PHP生成静态页面详解
生成静态页面的PHP类
使用Apache的rewrite技术
女子ATM机取钱遭电击 两指甲盖断裂血流不止
保时捷Boxster最高降16.5万元 现车充足