最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
PHPLIB模板入门教程-解析文件实例
时间:2022-07-02 10:45:48 编辑:袖梨 来源:一聚教程网
嵌套的模板 parse()函数的一个灵巧的特性是它创建的MyOutput句柄是一个真正的模板变量,就象some_color 是一
个模板变量。所以如果你有另一个模板,它有一个{MyOutput}标签,当你分析第二个模板时,所有的
{MyOutput}标记将被替换为MyOutput中的分析后的文本。这个特性允许你将一个模板文件嵌入到另一个模板
中。所以,我们可能有另一个名为wholePage.ihtml的模板,内容如下:
对不起,你没赢。但是如果你赢了,我们将对你说:
{MyOutput}
并且在wholePage.ihtml被分析后,最后的结果将是:
对不起,你没赢。但是如果你赢了,我们将对你说:
祝贺!你赢了一辆新蓝色Honda Prelude!
下面是分析两个模板的PHP代码:
--------------------------------------------------------------------------------
php教程
代码如下 | 复制代码 |
$t = new Template("/home/mydir/mytemplates/"); // 这三行同第一个例子一样 |
// 注意我们没有调用p()
// 这里,仍然没有输出任何东西
代码如下 | 复制代码 |
// 现在分析第二个模板 // wholePage.ihtml 有 "{MyOutput}" 在里面 // 所有的 {MyOutput} 被替换了 |
?>--------------------------------------------------------------------------------
最后调用了parse()和p()的两行语句可以合并成一个简写函数pparse():
代码如下 | 复制代码 |
-------------------------------------------------------------------------------- pparse("MyFinalOutput","SecondHandle"); ?> |
--------------------------------------------------------------------------------
另一个PHPLIB模板的特性是set_file()和set_var()函数也能一次接收多组值,通过传递一个句柄/数组
对数组。这是一个例子:
--------------------------------------------------------------------------------
代码如下 | 复制代码 |
$t->set_file(array( "pageOneHandle" => "pageone.ihtml", "pageTwoHandle" => "pagetwo.ihtml")); $t->set_var(array( "last_name" => "Gates", "first_name" => "Bill", "net_worth" => $reallybignumber)); ?> |
--------------------------------------------------------------------------------
添加模板文本
你可以给parse()和pparse()传递第三个参数,如果你想给模板变量追加数据而不是替换它。可以简单
的使用true作为第三个参数调用parse()和pparse(),如:
--------------------------------------------------------------------------------
代码如下 | 复制代码 |
$t->parse("MyOutput","MyFileHandle", true); ?> |
--------------------------------------------------------------------------------
如果MyOutput已经包含了数据,MyFileHandle将被分析并且被追加到MyOutput已经存在的数据上。这个
技术非常有用,如果你已经有了一个模板,你想要同一段文本被重复多次,例如列出一个数据库教程查询结果中
的多行。你也可能是显示数组中的变量,如下面的例子:
--------------------------------------------------------------------------------
代码如下 | 复制代码 |
set_file(array("mainpage" => "mainpage.ihtml", "each_element" => "each_element.ihtml"));reset($myArray);while (list($elementName, $elementValue) = each($myArray)) { // 设置 'value' 和 'name' 为每一个元素的值和名字 $t->set_var("name",$elementName); $t->set_var("value",$elementValue); // 追加each_element的拷贝 $t->parse("array_elements","each_element",true);}$t->pparse("output","mainpage");?>-------------------------------------------------------------------------------- |
这个例子使用了两个模板,mainpage.ihtml和each_element.ihtml。mainpage.ihtml模板可能是这样:
代码如下 | 复制代码 |
Here is the array: |
上面的{array_elements}标签将被each_element.ihtml的拷贝所替换,它将根据数组($myArray)进行重
复。each_element.ihtml模板看上去可能是:
代码如下 | 复制代码 |
{name}: {value} |
相关文章
- 明日方舟界园肉鸽待机缘有什么用 历钱通宝待机缘效果 08-06
- 大侠立志传被围攻的山贼事件流程攻略 08-06
- 燕云十六声缺口袋把戏团无伤怎么过 鬼神愁无伤逃课打法 08-06
- win11网络连接不见了怎么解决 08-06
- 《QQ》小世界删除推过方法 08-06
- W3 Total Cache Pro v2.8.11 汉化版 WordPress 缓存插件 08-06