|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
可以说你的马步已经扎的差不多了,接下来就要开始练把势的时候了,如果有条件的话,用笔或者打印一个简易的PHP手册在身上,时不时的摸出来看看,记得,去WC也不能放过(^2^)。 哈,很久不写blog了,明天就随意写点吧,怎样这blog的编纂器成了FCK的了呢?
突发灵感,写了一个十分复杂的模版类,固然没啥先辈的器材,不外我总以为灵感也是需求堆集的。
功到天然成嘛。模版类文件代码:
<?php
/**
* 作者:darasion
* 版权:利用或转载注明作者
*
*/
class DarasionTemplate{
var $template = "";
var $VAR = array();
var $className = "DarasionTemplate";
/**
* 设定 参数/模版
*
*/
function setVar($name,$value){
if(strtolower(get_class($value))==strtolower($this->className)){
$this->VAR[$name]=$value->parse();
}else{
$this->VAR[$name]=$value;
}
}
/**
* 取得 参数/解析后的模版
*
*/
function getVar($name){
if(isset($this->VAR[$name])){
return $this->VAR[$name];
}
}
/**
* 设定模版途径
*
*/
function setTemplate($tpl){
$this->template = $tpl;
}
/**
* 输入html
*
*/
function out(){
echo $this->parse();
}
/**
* 解析模版
*
*/
function parse(){
ob_start();
include_once($this->template);
echo $content=ob_get_contents();
ob_end_clean();
return $content;
}
}
?>
这个模版类可以撑持模版的嵌套,只需将子模版类的实例看成参数设置给父模版便可
利用办法:
test.php
<?php
include("DarasionTemplate.php");
//创立父模版
$tpl=new DarasionTemplate();
$tpl->setTemplate("inc/__tpl.php");
//父模版参数
$tpl->setVar("title","参数title");
$tpl->setVar("a","参数a");
$tpl->setVar("b","参数b");
//创立子模版
$tpl1=new DarasionTemplate();
$tpl1->setTemplate("inc/__tpl1.php");
//设置子模版参数
$tpl1->setVar("kk","kk");
//将子模版放入父模版中
$tpl->setVar("c",$tpl1);
$tpl->out();
?>
//父模版:__tpl.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title><?php echo @$this->getVar("title");?></title>
</head>
<body>
<?php echo @$this->getVar("a");?>
<?php echo @$this->getVar("b");?>
<?php echo @$this->getVar("c");?>
</body>
</html>
//子模版:__tpl1.php
<table width="200" border="1" bordercolor="#000000">
<tr>
<td><?php echo @$this->getVar("kk");?></td>
<td><?php echo @$this->getVar("kk");?></td>
<td><?php echo @$this->getVar("kk");?></td>
</tr>
</table>
输入的html:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>参数title</title>
</head>
<body>
参数a 参数b
<table width="200" border="1" bordercolor="#000000">
<tr>
<td>kk</td>
<td>kk</td>
<td>kk</td>
</tr>
</table>
</body>
</html>
在这个模版类中,利用了与其他模版类分歧的办法来完成:
1、把其他模版类中的相似{a}的换成了<?php echo @$this->getVar("a");?>并且子模版和父模版中他们的模式不异。
2、假如需求轮回,只需求写php的轮回代码便可,如:foreach()。
如许做的优点是:
1、省去了字符串的交换进程(一大堆的正则老是看不懂,呵呵,给本人想了个偷懒的举措)。
2、省去了从头进修一大堆说是标签还不是标签的器材的进程(仍是由于本人懒)。
3、更主要的优点是,用这个模版类对应的模版,是完整可以用Dreamweaver等东西停止可视化编纂的。
因为是一时髦起写成的器材,一定经不起细心的斟酌,只是给人人提出一个设法,供人人会商;假如真的能在实践中对你有所匡助,天然更好了。
学校并没有那么多的时间可以让我们在实际开发上面。 |
|