用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 相关文章推荐
PHP5+UTF8多文件上传类
Oct 17 PHP
php 页面执行时间计算代码
Dec 04 PHP
使用Apache的htaccess防止图片被盗链的解决方法
Apr 27 PHP
php实现利用phpexcel导出数据
Aug 24 PHP
php GUID生成函数和类
Mar 10 PHP
CodeIgniter框架中_remap()使用方法2例
Mar 10 PHP
windows下配置apache+php+mysql时出现问题的处理方法
Jun 20 PHP
PHP实现对png图像进行缩放的方法(支持透明背景)
Jul 15 PHP
php简单解析mysqli查询结果的方法(2种方法)
Jun 29 PHP
Laravel+jQuery实现AJAX分页效果
Sep 14 PHP
PHP fclose函数用法总结
Feb 15 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
Feb 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
两种php调用Java对象的方法
2006/10/09 PHP
PHP与MySQL开发中页面乱码的产生与解决
2008/03/27 PHP
探讨方法的重写(覆载)详解
2013/06/08 PHP
table标签的结构与合并单元格的实现方法
2013/07/24 PHP
PHP之autoload运行机制实例分析
2014/08/28 PHP
对 lightbox JS 图片控件进行了一下改造, 使其他支持复杂的图片说明
2010/03/20 Javascript
网页上的Javascript编辑器和代码格式化
2010/04/25 Javascript
通过上下左右键和回车键切换光标实现代码
2013/03/08 Javascript
如何使用jQUery获取选中radio对应的值(一句代码)
2013/06/03 Javascript
jquery跨域请求示例分享(jquery发送ajax请求)
2014/03/25 Javascript
巧用replace将文字表情替换为图片
2014/04/17 Javascript
JS运动框架之分享侧边栏动画实例
2015/03/03 Javascript
xcode中获取js文件的路径方法(推荐)
2016/11/05 Javascript
vue实现element-ui对话框可拖拽功能
2018/08/17 Javascript
vue模仿网易云音乐的单页面应用
2019/04/24 Javascript
JQuery样式与属性设置方法分析
2019/12/07 jQuery
vue全屏事件开发详解
2020/06/17 Javascript
详解Python中dict与set的使用
2015/08/10 Python
Python下的Softmax回归函数的实现方法(推荐)
2017/01/26 Python
Python使用matplotlib的pie函数绘制饼状图功能示例
2018/01/08 Python
Django自定义用户认证示例详解
2018/03/14 Python
浅谈Python2、Python3相对路径、绝对路径导入方法
2018/06/22 Python
获取python的list中含有重复值的index方法
2018/06/27 Python
[原创]Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】
2018/10/29 Python
关于python中的xpath解析定位
2020/03/06 Python
Python使用pickle进行序列化和反序列化的示例代码
2020/09/22 Python
西班牙拥有最佳品牌的动物商店:Animalear.com
2018/01/05 全球购物
巴西购物网站:Estrela10
2018/12/13 全球购物
使用useBean标志初始化BEAN时如何接受初始化参数
2012/02/11 面试题
编辑硕士自荐信范文
2013/11/27 职场文书
事业单位辞职信范文
2014/01/19 职场文书
物业消防安全责任书
2014/07/23 职场文书
企业员工爱岗敬业演讲稿
2014/08/26 职场文书
党支部班子“四风”问题自我剖析材料
2014/09/28 职场文书
学校机关党总支领导班子整改工作方案
2014/10/26 职场文书
教你怎么用Python selenium操作浏览器对象的基础API
2021/06/23 Python