用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中echo()和print()、require()和include()等易混淆函数的区别
Feb 22 PHP
PHP代码网站如何防范SQL注入漏洞攻击建议分享
Mar 01 PHP
php启动时候提示PHP startup的解决方法
May 07 PHP
解析如何在PHP下载文件名中解决乱码的问题
Jun 20 PHP
微信扫描二维码登录网站代码示例
Dec 30 PHP
php统计时间和内存使用情况示例分享
Mar 13 PHP
PHP中魔术变量__METHOD__与__FUNCTION__的区别
Sep 29 PHP
php查看网页源代码的方法
Mar 13 PHP
Yii2实现同时搜索多个字段的方法
Aug 10 PHP
php组合排序简单实现方法
Oct 15 PHP
ThinkPHP框架获取最后一次执行SQL语句及变量调试简单操作示例
Jun 13 PHP
PHP code 验证码生成类定义和简单使用示例
May 27 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
有道搜索和IP138的IP的API接口(PHP应用)
2012/11/29 PHP
Laravel使用模型实现like模糊查询的例子
2019/10/24 PHP
Javascript操作select方法大全[新增、修改、删除、选中、清空、判断存在等]
2008/09/26 Javascript
JavaScript 利用StringBuffer类提升+=拼接字符串效率
2009/11/24 Javascript
基于JQuery制作的产品广告效果
2010/12/08 Javascript
Jquery公告滚动+AJAX后台得到数据
2011/04/14 Javascript
jquery复选框checkbox实现删除前判断
2014/04/20 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(一)
2015/12/10 Javascript
详解jQuery UI库中文本输入自动补全功能的用法
2016/04/23 Javascript
js倒计时简单实现代码
2016/08/11 Javascript
jQuery实现三级联动效果
2017/03/02 Javascript
js eval函数使用,js对象和字符串互转实例
2017/03/06 Javascript
JS jQuery使用正则表达式去空字符的简单实现代码
2017/05/20 jQuery
nodejs调取微信收货地址的方法
2017/12/20 NodeJs
webpack引入eslint配置详解
2018/01/22 Javascript
javascript的惯性运动实现代码实例
2019/09/07 Javascript
[00:32]2018DOTA2亚洲邀请赛出场——LGD
2018/04/04 DOTA
浅谈python多线程和队列管理shell程序
2015/08/04 Python
python 通过字符串调用对象属性或方法的实例讲解
2018/04/21 Python
Python PyAutoGUI模块控制鼠标和键盘实现自动化任务详解
2018/09/04 Python
通过shell+python实现企业微信预警
2019/03/07 Python
简单的Python调度器Schedule详解
2019/08/30 Python
深入了解Python在HDA中的应用
2019/09/05 Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
2020/06/02 Python
html5使用canvas绘制太阳系效果
2014/12/15 HTML / CSS
英国家喻户晓的高街品牌:River Island
2017/11/28 全球购物
SmartBuyGlasses比利时:购买品牌太阳镜和眼镜
2019/08/09 全球购物
安全事故检讨书
2014/01/18 职场文书
应聘文员自荐信范文
2014/03/11 职场文书
小学生评语集锦
2014/04/18 职场文书
社区维稳工作方案
2014/06/06 职场文书
相亲活动方案
2014/08/26 职场文书
合作经营协议书范本
2014/09/16 职场文书
代收款委托书范本
2014/10/01 职场文书
2015迎新晚会活动总结
2015/07/16 职场文书
Spring JPA 增加字段执行异常问题及解决
2022/06/10 Java/Android