|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
理解网站这一概念之后不难看出,任何网站都是由网页组成的,也就是说想完成网站,必须先学会做网页,因此必须要掌握了HTML,才能为今后制作网站打下基础。模板 嵌套的模板
parse()函数的一个乖巧的特征是它创立的MyOutput句柄是一个真实的模板变量,就象some_color 是一
个模板变量。所以假如你有另外一个模板,它有一个{MyOutput}标签,当你剖析第二个模板时,一切的
{MyOutput}标志将被交换为MyOutput中的剖析后的文本。这个特征答应你将一个模板文件嵌入到另外一个模板
中。所以,咱们能够有另外一个名为wholePage.ihtml的模板,内容以下:
对不起,你没赢。然而假如你赢了,咱们将对你说:
{MyOutput}
而且在wholePage.ihtml被剖析后,最初的了局将是:
对不起,你没赢。然而假如你赢了,咱们将对你说:
庆祝!你赢了一辆新蓝色Honda Prelude!
上面是剖析两个模板的PHP代码:
<?php
$t = new Template("/home/mydir/mytemplates/");
// 这三行同第一个例子一样
$t->set_file("MyFileHandle","MyTemplate.ihtml");
$t->set_var("some_color",$my_color);
$t->parse("MyOutput","MyFileHandle");
// 注重咱们没有挪用p()
// 这里,依然没有输入任何器材
// 如今剖析第二个模板
$t->set_file("WholeHandle","wholePage.ihtml");
// wholePage.ihtml 有 "{MyOutput}" 在外面
$t->parse("MyFinalOutput","WholeHandle");
// 一切的 {MyOutput} 被交换了
$t->p("MyFinalOutput");
// 输入 MyFinalOutput 的值
?>
最初挪用了parse()和p()的两行语句可以兼并成一个简写函数pparse():
pparse("MyFinalOutput","SecondHandle");
另外一个PHPLIB模板的特征是set_file()和set_var()函数也能一次吸收多组值,经由过程传递一个句柄/数组
对数组。这是一个例子:
<?php
$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(),如: <?php
$t->parse("MyOutput","MyFileHandle", true);
?>
假如MyOutput已包括了数据,MyFileHandle将被剖析而且被追加到MyOutput已存在的数据上。这个手艺十分有效,假如你已有了一个模板,你想要统一段文本被反复屡次,例如列出一个数据库查询了局中的多行。你也多是显示数组中的变量,以下面的例子:
<?php
$t = new Template("/home/mydir/mytemplates/"); $t->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}
下面的{array_elements}标签将被each_element.ihtml的拷贝所交换,它将依据数组($myArray)停止重
复。each_element.ihtml模板看上去多是:
{name}: {value}
处置了局是一个包括$myArray元素的格局化很好的表格。然而假如将两个模板兼并成一个模板不是更好
吗?实践上,它们可使用模板块来兼并利用。模板块答应从一个模板中掏出一块文本,所以你可以反复很
屡次,或在它下面做任何你想做的工作。然而我将在另外一篇文章讲述这个特征。
培训的第一阶段,学习的是HTML/CSS/JavaScript基础。 |
|