|
|
php程序界有很多种模板技术和方法;但使用起来大多不太方便。
我经过思考和测试,发明了一种简单而巧妙的方法。
我的目标是:把html从php中分离出来,并且html中不包含php控制程序。
在php4中,提供了print<<< HTML 功能。举例如下:
$data="这里是内容";
print<<< HTML
$data
HTML;
?>
输出:这里是内容。
另外一方面,php中有函数eval()。它能够执行php代码。我们就结合上述
知识来建立一个通用的函数getTpl().如下:
下面是demo.php
<?php
function getTpl($tplname,$EXT='.htm')
{
extract($GLOBALS);
$path=$tplname.$EXT;
eval("print<<< EOT\n".readfn($path)."\nEOT;\n");
}
function readfn($fn)
{
$fp=fopen($fn,"rb");
return fread($fp,filesize($fn));
fclose($fp);
}
$title='这是标题';
$data='这里是内容';
getTpl('demo');
?>
下面是demo.htm
<html>
<head>
<title> $title </title>
</head>
<body>
<b>$title</b>
<p>$data
</body>
</html>
经过这样的处理后,在demo.htm中只有php要替换的变量,而没有任何其他php的多余代码了。
这样以来,外观和程序逻辑就得以完全分离,为网站的修改和后期维护提供了方便之门!
注:以上方法分离了php和html,代表了显示和逻辑的分离。但是以失去复杂控制为代价的。 |
|