用libtemplate实现静态网页生成


Posted in PHP onOctober 09, 2006

  by coldwind/iwind/month/ccterran http://iwind.org
   有很长一段时间我到处问别人怎么实现静态网页,还向唠叨提过问题,而如今,我终于想出了一个很简单的办法,那就是用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;
      }
   所以说实现生成静态页面是很简单的.更新也非想象中那么复杂.
  (完)

PHP 相关文章推荐
php开启安全模式后禁用的函数集合
Jun 26 PHP
解析MySql与Java的时间类型
Jun 22 PHP
curl实现站外采集的方法和技巧
Jan 31 PHP
php中explode的负数limit用法分析
Feb 27 PHP
ThinkPHP中使用Ueditor富文本编辑器
Sep 02 PHP
php实现图片上传、剪切功能
May 07 PHP
Yii2中OAuth扩展及QQ互联登录实现方法
May 16 PHP
浅谈php中的循环while、do...while、for、foreach四种循环
Nov 05 PHP
深入理解PHP中mt_rand()随机数的安全
Oct 12 PHP
PHP实现git部署的方法教程
Dec 19 PHP
php原生数据库分页的代码实例
Feb 18 PHP
使用PHPUnit进行单元测试并生成代码覆盖率报告的方法
Mar 08 PHP
初探PHP5
Oct 09 #PHP
用PHP连mysql和oracle数据库性能比较
Oct 09 #PHP
利用文件属性结合Session实现在线人数统计
Oct 09 #PHP
PHP中上传大体积文件时需要的设置
Oct 09 #PHP
新版PHP极大的增强功能和性能
Oct 09 #PHP
用PHP开发GUI
Oct 09 #PHP
PHP中实现进程间通讯
Oct 09 #PHP
You might like
实现获取http内容的php函数分享
2014/02/16 PHP
php实现按指定大小等比缩放生成上传图片缩略图的方法
2014/12/15 PHP
php强制用户转向www域名的方法
2015/06/19 PHP
PHP使用strtotime获取上个月、下个月、本月的日期
2015/12/30 PHP
Js callBack 返回前一页的js方法
2008/11/30 Javascript
js表数据排序 sort table data
2009/02/18 Javascript
js中访问html中iframe的文档对象的代码[IE6,IE7,IE8,FF]
2011/01/08 Javascript
jquery淡化版banner异步图片文字效果切换图片特效
2014/04/08 Javascript
5个书写JavaScript代码的坏习惯,看看你中枪了没?
2014/11/06 Javascript
jQuery中;function($,undefined) 前面的分号的用处
2014/12/17 Javascript
javascript算法题:求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2015/04/01 Javascript
JS实现样式清新的横排下拉菜单效果
2015/10/09 Javascript
简单对比分析JavaScript中的apply,call与this的使用
2015/12/04 Javascript
javascript数组常用方法汇总
2016/09/10 Javascript
js中class的点击事件没有效果的解决方法
2016/10/13 Javascript
探讨跨域请求资源的几种方式(总结)
2016/12/02 Javascript
原生js实现无缝轮播图效果
2017/01/11 Javascript
jQuery源码分析之sizzle选择器详解
2017/02/13 Javascript
JS二叉树的简单实现方法示例
2017/04/05 Javascript
详解a++和++a的区别
2017/08/30 Javascript
解决vue移动端适配问题
2018/12/12 Javascript
jQuery实现的别踩白块小游戏完整示例
2019/01/07 jQuery
深入理解vue-class-component源码阅读
2019/02/18 Javascript
vue将文件/图片批量打包下载zip的教程
2020/10/21 Javascript
在Angular项目使用socket.io实现通信的方法
2021/01/05 Javascript
[49:42]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第一局
2016/03/04 DOTA
[47:20]DAC2018 4.4 淘汰赛 Optic vs Mineski 第一场
2018/04/05 DOTA
Python3.5.3下配置opencv3.2.0的操作方法
2018/04/02 Python
python按比例随机切分数据的实现
2019/07/11 Python
django使用xadmin的全局配置详解
2019/11/15 Python
html5使用canvas实现跟随光标跳动的火焰效果
2014/01/07 HTML / CSS
NARS化妆品官方商店:美国彩妆品牌
2017/08/26 全球购物
乡文化站暑期培训方案
2014/08/28 职场文书
自我评价优缺点范文
2015/03/11 职场文书
毕业生自我鉴定范文
2019/05/13 职场文书
2019最新版股权转让及委托持股协议书范本
2019/08/07 职场文书