簡單講,就是一個PHP的template 官方網站
目地就是為了要讓html跟PHP做分隔
html部份主要是用BEGIN和END來做區塊的分格
HTML:
<!-- BEGIN:main -->
<!DOCTYPE html>
<html lang="zh-TW">
<head>
<meta charset="UTF-8" />
<title>XTemplate Test</title>
</head>
<body>
<!-- BEGIN:block1 -->
<p>不會顯示</p>
<!-- END:block1 -->
<!-- BEGIN:block2 -->
<p>顯示</p>
<!-- END:block2 -->
<!-- BEGIN:show -->
<p>顯示陣列:{ROW.Name}的title是{ROW.Title}</p>
<!-- BEGIN:threelayer -->
<p>來個第三層</p>
<!-- END:threelayer -->
<!-- END:show -->
<!-- BEGIN:string -->
{NULLSTRING}
<!-- END:string -->
<!-- BEGIN:table -->
<table border="1">
<tr>
<td>姓名</td>
<td>性別</td>
</tr>
<!-- BEGIN:table_row -->
<tr>
<td>{ROW1.Name}</td>
<td>{ROW1.Gender}</td>
</tr>
<!-- END:table_row -->
</table>
<!-- END:table -->
</body>
</html>
<!-- END:main -->
PHP:
<?php
//include XTemplate Class
include_once('./xtemplate.class.php');
//New XTemplate Object
$xtpl = new XTemplate("xtpl_test.html");
//如果建立新物件時沒有引入html,可以透過set_file設定
$xtpl -> set_file("xtpl_test.html");
$arr = array(
"Name" => "JohnsonLu",
"Title" => "God"
);
$arr1 = array(
array(
"Name" => "Johnson",
"Gender" => "男"
),
array(
"Name" => "Maple",
"Gender" => "女"
)
);
//由內向外parse(沒有parse的話該區塊就不會顯示出來,最外層的main要最後parse)
$xtpl -> parse("main.block2");
//定義變數
$xtpl-> assign("ROW" , $arr);
$xtpl -> parse("main.show.threelayer");
$xtpl -> parse("main.show");
$xtpl ->set_null_string("Hello EveryBody","NULLSTRING");
$xtpl -> parse("main.string");
//迴圈parse
foreach($arr1 as $val){
$xtpl -> assign("ROW1" , $val);
$xtpl -> parse("main.table.table_row");
}
$xtpl -> parse("main.table");
$xtpl -> parse("main");
//結束main
$xtpl -> out("main");
?>