用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入门小知识
Mar 24 PHP
set_include_path和get_include_path使用及注意事项
Feb 02 PHP
PHP遍历目录并返回统计目录大小
Jun 09 PHP
php生成html文件方法总结
Dec 01 PHP
php常见的魔术方法详解
Dec 25 PHP
PHP、Java des加密解密实例
Apr 27 PHP
php实现表单多按钮提交action的处理方法
Oct 24 PHP
YII Framework框架教程之日志用法详解
Mar 14 PHP
PHP自动补全表单的两种方法
Mar 06 PHP
PHP实现的数组和XML文件相互转换功能示例
Mar 15 PHP
PHP实现微信支付(jsapi支付)流程步骤详解
Mar 15 PHP
php实现商城购物车的思路和源码分析
Jul 23 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
后宫无数却洁身自好的男主,唐三只爱小舞
2020/03/02 国漫
php中session退出登陆问题
2014/02/27 PHP
PHP实现的curl批量请求操作示例
2018/06/06 PHP
发布一个高效的JavaScript分析、压缩工具 JavaScript Analyser
2007/11/30 Javascript
基于jquery跨浏览器显示的file上传控件
2011/10/24 Javascript
js实现文本框中焦点在最后位置
2014/03/04 Javascript
浅谈JavaScript 的执行顺序
2015/08/07 Javascript
Javascript中字符串和数字的操作方法整理
2017/01/22 Javascript
微信小程序 chooseImage选择图片或者拍照
2017/04/07 Javascript
Angularjs 与 bower安装和使用详解
2017/05/11 Javascript
JS实现点击Radio动态更新table数据
2017/07/18 Javascript
JS实现碰撞检测的方法分析
2018/01/19 Javascript
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
2019/01/18 jQuery
微信小程序实现页面分享onShareAppMessage
2019/08/12 Javascript
JavaScript 作用域scope简单汇总
2019/10/23 Javascript
AI小程序之语音听写来了,十分钟掌握百度大脑语音听写全攻略
2020/03/13 Javascript
[02:44]完美大师赛主赛事淘汰赛第二日观众采访
2017/11/24 DOTA
python读写ini文件示例(python读写文件)
2014/03/25 Python
python操作mongodb根据_id查询数据的实现方法
2015/05/20 Python
python通过pip更新所有已安装的包实现方法
2017/05/19 Python
Python工程师面试必备25条知识点
2018/01/17 Python
解决Python 爬虫URL中存在中文或特殊符号无法请求的问题
2018/05/11 Python
python中实现控制小数点位数的方法
2019/01/24 Python
python opencv鼠标事件实现画框圈定目标获取坐标信息
2020/04/18 Python
python3中的eval和exec的区别与联系
2019/10/10 Python
浅析Python+OpenCV使用摄像头追踪人脸面部血液变化实现脉搏评估
2019/10/17 Python
如何修复使用 Python ORM 工具 SQLAlchemy 时的常见陷阱
2019/11/19 Python
Python使用正则实现计算字符串算式
2019/12/29 Python
Keras 实现加载预训练模型并冻结网络的层
2020/06/15 Python
物流专业大学生求职信范文
2013/10/28 职场文书
开办大学饮食联盟创业计划书
2014/01/29 职场文书
红领巾广播站广播稿
2014/10/19 职场文书
教师党的群众路线教育实践活动学习笔记
2014/11/05 职场文书
学习雷锋精神活动总结
2015/02/06 职场文书
电影圆明园观后感
2015/06/03 职场文书
配置Kubernetes外网访问集群
2022/03/31 Servers