【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}


{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
    E-Mail
 
 
 
    {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}


{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();
?>

本文来源:http://www.gdgbn.com/jiaocheng/19580/