【www.gdgbn.com--php框架模板】
/* @author: zhuyubing@gmail.com */
class Template{
var $code;
function Template($template){
$this->code = implode("", @file($template));
}
function assign($name,$var=null){
if(is_string($name) && is_string($var)){
$this->code = str_replace("{".$name."}", $var, $this->code);
} else if(is_array($var)){
list($this->code,$tmp,$end)=explode("",$this->code);
while(list(,$v)=each($var)){
$t=$tmp;$k2=$v2="";
while(list($k2, $v2) = each($v)){
$t = str_replace("{".$k2."}", $v2,$t);
}
$this->code .= $t;
}
$this->code .= $end;
} else {
while (list ($k2, $v2) = each($name)){
$this->code = str_replace("{".$k2."}", $v2, $this->code);
}
}
}
function display(){
echo $this->code;
}
}
?>
最简单的hello_world
准备一个php模版文件hello_world.html
{title}
接下来就是模版的翻译工作了
include("../include/template.php"); //包含模版核心类文件
$tpl=new Template("hello_world.html"); //参数为模版路径和文件名,可以使用相对路径,也可以使用绝对路径
$tpl->assign("title","hello world!"); //将标签{title} 替换成hello world
$tpl->display();
?>
模版中使用数组
test_array.html
{user} {email}
{user1} {email1}
模版处理文件
include("../include/template.php");
$tpl=new Template("test_array.html");
$user=array("user"=>"yubing","email"=>"test@sina.com");
$tpl->assign($user);
$tpl->assign("user1","jack");
$tpl->assign("email1","zhuyubing@gmail.com");
$tpl->display();
?>
简单的区块处理
block.html
User Name
{name}
{email}
区块处理程序
block.php
include("../include/template.php");
$tpl=new Template("block.html");
$users=array(
array("name"=>"jack","email"=>"test@example.com"),
array("name"=>"tom","email"=>"tom@sina.com")
);
$tpl->assign("users",$users);
$tpl->display();
?>
模版包含测试
{title}
{block}
模版包含处理程序
include("../include/template.php");
$tpl=new Template("block.html");
$users=array(
array("name"=>"jack","email"=>"test@example.com"),
array("name"=>"tom","email"=>"zhuyubing@gmail.com"),
);
$tpl->assign("users",$users);
$block=$tpl->code;
$tpl->Template("main.html");
$tpl->assign("block",$block);
$tpl->assign(array("title"=>"测试多模版文件"));
$tpl->display();
?>