用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 11 PHP
PHP代码保护--Zend Guard的使用详解
Jun 03 PHP
PHP随机字符串生成代码(包括大小写字母)
Jun 24 PHP
PHP页面实现定时跳转的方法
Oct 31 PHP
php中获取主机名、协议及IP地址的方法
Nov 18 PHP
ThinkPHP开发框架函数详解:C方法
Aug 14 PHP
微信支付扫码支付php版
Jul 22 PHP
Yii2框架RESTful API 格式化响应,授权认证和速率限制三部分详解
Nov 10 PHP
thinkPHP模板中for循环与switch语句用法示例
Nov 30 PHP
php检查函数必传参数是否存在的实例详解
Aug 28 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
Nov 14 PHP
PHP有序表查找之二分查找(折半查找)算法示例
Feb 09 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
DOM基础及php读取xml内容操作的方法
2015/01/23 PHP
WordPress中&quot;无法将上传的文件移动至&quot;错误的解决方法
2015/07/01 PHP
PHP中创建和验证哈希的简单方法实探
2015/07/06 PHP
php 将json格式数据转换成数组的方法
2018/08/21 PHP
总结PHP中初始化空数组的最佳方法
2019/02/13 PHP
prototype class详解
2006/09/07 Javascript
JavaScript 编程引入命名空间的方法
2007/06/29 Javascript
jquery图片切换实例分析
2015/04/15 Javascript
灵活的理解JavaScript中的this指向
2016/02/25 Javascript
怎么引入(调用)一个JS文件
2016/05/26 Javascript
详解AngularJS ui-sref的简单使用
2017/04/24 Javascript
JS实现的点击按钮图片上下滚动效果示例
2019/01/28 Javascript
js实现图片局部放大效果详解
2019/03/18 Javascript
原生js无缝轮播插件使用详解
2020/03/09 Javascript
原生微信小程序开发中 redux 的使用详解
2021/02/18 Javascript
[03:54]Ehome出征西雅图 回顾2016国际邀请赛晋级之路
2016/08/02 DOTA
[03:58]兄弟们,回来开黑了!DOTA2昔日战友招募宣传视频
2016/07/17 DOTA
python逐行读取文件内容的三种方法
2014/01/20 Python
Python Web开发模板引擎优缺点总结
2014/05/06 Python
python实现给数组按片赋值的方法
2015/07/28 Python
python处理按钮消息的实例详解
2017/07/11 Python
python文件名和文件路径操作实例
2017/09/29 Python
解决phantomjs截图失败,phantom.exit位置的问题
2018/05/17 Python
解决python "No module named pip" 的问题
2018/10/13 Python
使用Python监视指定目录下文件变更的方法
2018/10/15 Python
python sklearn常用分类算法模型的调用
2019/10/16 Python
Python绘制三角函数图(sin\cos\tan)并标注特定范围的例子
2019/12/04 Python
python爬虫库scrapy简单使用实例详解
2020/02/10 Python
加拿大廉价机票预订网站:CheapOair.ca
2018/03/04 全球购物
日本最大级玩偶手办购物:あみあみ Amiami
2018/04/23 全球购物
房屋维修申请报告
2015/05/18 职场文书
结婚喜宴迎宾词
2015/08/10 职场文书
高考百日冲刺决心书
2015/09/23 职场文书
HTML速写之Emmet语法规则的实现
2021/04/07 HTML / CSS
手写实现JS中的new
2021/11/07 Javascript
css样式important规则的正确使用方式
2022/06/10 HTML / CSS