Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 网站建设 > PHP > phplib里带的模板功能有个致命的小错误
【标  题】:phplib里带的模板功能有个致命的小错误
【关键字】:php,错误,phplib,phplib
【来  源】:网络

phplib里带的模板功能有个致命的小错误

Your Ad Here


    phplib里带的template.inc包含了一个模板类,用它可以实现程序代码和
界面的分离,给程序设计和界面设计带来了极大的方便,而且它的实现比快速
模板要好。但有一个致命的小错误导致set_block()函数不能正常使用,而这个
函数是非常重要的,它在处理重复块时显得非常的好用。
    下面通过一个最简单的例子来讲解用法及解决方法:
模板文件:page1.ihtml(名字你可以随便取,后缀ihtml是一种习惯用法)
<HTML>
<HEAD>
<TITLE> {TITLE} </TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<!-- BEGIN TBK -->
ID: {ID}<BR>
NAME: {NAME}<BR>
<HR>
<!-- END TBK -->
</BODY>
</HTML>
处理文件:test.php
<?php
  include("./template.inc");
  # 创建模板变量$t  
  $t = new Template(".", "keep");
  # 定义页面变量的引用,这样你就可以用page1来引用页面了
  $t->set_file("page1","page1.ihtml");
  # 提取名称为TBK的块,让它指向tbks的引用
  $t->set_block("page1", "TBK", "tbks");
  # 替换标题TITLE变量
  $t->set_var("TITLE","my test of template");
  # 定义ID和NAME,然后把TBK附加到tbks
  for ($i=1; $i<=3; $i++) {
    $n  = $i;
    $nn = $i*10;
    $t->set_var(array("ID" => $n, "NAME" => $nn));
    $t->parse("tbks", "TBK", true);
  }
  # 最后输出页面
  $t->pparse("out", "page1");
?>
   但是这个例子是不能运行的,网友Openball曾给出一种解决方案,把
$t->set_block("page1", "TBK", "tbks");改为$t->set_block("page1", "TBK", "{tbks}");注意最后的“{}”符号,这样的确可以用了,
但有更好的解决方案,打开template.inc文件,找到set_block()函数里的
这句话:$str = preg_replace($reg, "{$name}", $str);呵呵,看到没,
phplib已经做了处理了,但忘了(我猜的:)转义“{”,因此把这句话改
为:$str = preg_replace($reg, "\{$name}", $str);就可以了。这样,
phplib自带的例子也可以用了,而且这种方法似乎更规范些,不知各位的
已经如何,具体的还可以参照我在实际中用的模板和程序,欢迎交流经验

用对话框的方式打开IE的浏览器窗口:【上一篇】
模拟OICQ的实现思路和核心程序:【下一篇】
【相关文章】
  • PHP4.03关于session不能自动去除的临时处理方法
  • 如何文档化你的PHP类
  • PHP拥有序列化方法
  • 用PHP实现动态产生XML文件以及从XML文件中抽取数据转化成HTML的小程序
  • 用PHP3作树型目录
  • PHP生成动态WAP页面
  • PHP 4.0.0中session.save_path的bug
  • php做饼图的函数
  • php和js交互一例
  • 如何PHP的图形函数中显示汉字
  • 【随机文章】
  • 对RedHat系统的一些概括性描述
  • Java设计模式之代理模式篇(2)
  • Oracle数据导入导出详解
  • 了解DOS下的内存
  • .net中交易处理的解决方案
  • 免费可升级的图型化杀毒软件下载
  • 正确选择屏蔽电缆和非屏蔽电缆
  • JSP开发入门
  • SQL Server 2000 与 SQL Server 7.0 版兼容性问题
  • FB6的POLLING的继续
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.