用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正则
Jul 07 PHP
收集的二十一个实用便利的PHP函数代码
Apr 22 PHP
php+jquery编码方面的一些心得(utf-8 gb2312)
Oct 12 PHP
php写的简易聊天室代码
Jun 04 PHP
PHP setTime 设置当前时间的代码
Aug 27 PHP
PHP字符串比较函数strcmp()和strcasecmp()使用总结
Nov 19 PHP
Android App中DrawerLayout抽屉效果的菜单编写实例
Mar 21 PHP
详解yii2使用多个数据库的案例
Jun 16 PHP
ThinkPHP 3使用OSS的方法
Jul 19 PHP
PHP html_entity_decode()函数讲解
Feb 25 PHP
使用SMB共享来绕过php远程文件包含的限制执行RFI的利用
May 31 PHP
Yii框架的redis命令使用方法简单示例
Oct 15 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
simplehtmldom Doc api帮助文档
2012/03/26 PHP
PHP用strstr()函数阻止垃圾评论(通过判断a标记)
2013/09/28 PHP
19个超实用的PHP代码片段
2014/03/14 PHP
ThinkPHP实现简单登陆功能
2017/04/28 PHP
iis6手工创建网站后无法运行php脚本的解决方法
2017/06/08 PHP
jQuery News Ticker 基于jQuery的即时新闻行情展示插件
2011/11/05 Javascript
js+JQuery返回顶部功能如何实现
2012/12/03 Javascript
JavaScript splice()方法详解
2020/09/22 Javascript
IE下双击checkbox反应延迟问题的解决方法
2014/03/27 Javascript
jquery实现动静态条形统计图
2015/08/17 Javascript
基于jQuery实现二级下拉菜单效果
2016/02/01 Javascript
BootStrap文件上传样式超好看【持续更新】
2016/05/10 Javascript
vue双向绑定的简单实现
2016/12/22 Javascript
原生js实现可爱糖果数字时间特效
2016/12/30 Javascript
JavaScript获取URL参数的方法之一
2017/03/24 Javascript
Vue项目中最新用到的一些实用小技巧
2018/11/06 Javascript
解决微信小程序中转换时间格式IOS不兼容的问题
2019/02/15 Javascript
Centos7 安装Node.js10以上版本的方法步骤
2019/10/15 Javascript
vue实现打地鼠小游戏
2020/08/21 Javascript
python读取txt文件,去掉空格计算每行长度的方法
2018/12/20 Python
Tensorflow读取并输出已保存模型的权重数值方式
2020/01/04 Python
使用CSS3制作倾斜导航条和毛玻璃效果
2017/09/12 HTML / CSS
CSS3转换功能transform主要属性值分析及实现分享
2012/05/06 HTML / CSS
耐克美国官网:Nike.com
2016/08/01 全球购物
金智子午JAVA面试题
2015/09/04 面试题
院药学专业个人求职信
2013/09/21 职场文书
光学与应用专业毕业生求职信
2014/09/01 职场文书
房产公证书格式
2015/01/26 职场文书
三潭印月的导游词
2015/02/12 职场文书
领导干部失职检讨书
2015/05/05 职场文书
理想国读书笔记
2015/06/25 职场文书
2016年党建工作简报
2015/11/26 职场文书
装修安全责任协议书
2016/03/22 职场文书
送给教师们,到底该如何写好教学反思?
2019/07/02 职场文书
SpringBoot整合RabbitMQ的5种模式实战
2021/08/02 Java/Android
关于HTML编码导致的乱码问题
2021/09/04 HTML / CSS