用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&amp;MYSQL服务器配置说明
Oct 09 PHP
如何对PHP程序中的常见漏洞进行攻击(下)
Oct 09 PHP
如何使用PHP中的字符串函数
Nov 24 PHP
PHP连接access数据库
Mar 27 PHP
PHP 函数call_user_func和call_user_func_array用法详解
Mar 02 PHP
PHP中比较时间大小实例
Aug 21 PHP
为PHP5.4开启Zend OPCode缓存
Dec 26 PHP
WordPress开发中用于获取近期文章的PHP函数使用解析
Jan 05 PHP
Yii2组件之多图上传插件FileInput的详细使用教程
Jun 20 PHP
Yii2简单实现给表单添加验证码的方法
Jul 18 PHP
thinkphp5.1框架模板布局与模板继承用法分析
Jul 19 PHP
laravel框架实现去掉URL中index.php的方法
Oct 12 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 方便水印和缩略图的图形类
2009/05/21 PHP
浅谈PHP中foreach/in_array的使用
2015/11/02 PHP
PHP将MySQL的查询结果转换为数组并用where拼接的示例
2016/05/13 PHP
yii2多图上传组件的使用教程
2018/05/10 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
laravel数据库查询结果自动转数组修改实例
2021/02/27 PHP
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之二
2011/12/31 Javascript
JavaScript 更严格的相等 [译]
2012/09/20 Javascript
Jquery同辈元素选中/未选中效果的实例代码
2013/08/01 Javascript
jquery基础教程之deferred对象使用方法
2014/01/22 Javascript
一个不错的js html页面倒计时可精确到秒
2014/10/22 Javascript
jQuery过滤选择器详解
2015/01/13 Javascript
js实现DOM走马灯特效的方法
2015/01/21 Javascript
JavaScript常用脚本汇总(三)
2015/03/04 Javascript
jQuery异步上传文件插件ajaxFileUpload详细介绍
2015/05/19 Javascript
AngularJS的表单使用详解
2015/06/17 Javascript
jQuery获得字体颜色16位码的方法
2016/02/20 Javascript
ionic cordova一次上传多张图片(类似input file提交表单)的实现方法
2016/12/16 Javascript
vue 检测用户上传图片宽高的方法
2020/02/06 Javascript
js面试题之异步问题的深入理解
2020/09/20 Javascript
Python for Informatics 第11章之正则表达式(四)
2016/04/21 Python
浅谈python爬虫使用Selenium模拟浏览器行为
2018/02/23 Python
python socket网络编程之粘包问题详解
2018/04/28 Python
Python使用try except处理程序异常的三种常用方法分析
2018/09/05 Python
Django接收自定义http header过程详解
2019/08/23 Python
Python使用grequests(gevent+requests)并发发送请求过程解析
2019/09/25 Python
专门出售各种儿童读物的网站:Put Me In The Story
2016/08/07 全球购物
StubHub希腊:购买体育赛事、音乐会和剧院门票
2019/08/03 全球购物
编程实现去掉XML的重复结点
2014/05/28 面试题
《曹刿论战》教学反思
2014/03/02 职场文书
处级领导班子全部召开专题民主生活会情况汇报
2014/09/27 职场文书
青年岗位能手事迹材料
2014/12/23 职场文书
大卫科波菲尔读书笔记
2015/06/30 职场文书
MySQL 服务和数据库管理
2021/11/11 MySQL
Win11如何启用启动修复 ? Win11执行启动修复的三种方法
2022/04/08 数码科技
Python使用Beautiful Soup(BS4)库解析HTML和XML
2022/06/05 Python