|
楼主 |
发表于 2007 年 1 月 31 日 18:43:37
|
显示全部楼层
原帖由 y 于 2007-1-31 18:40 发表
heredoc是phpwind用的那种
phpbb就是php本身,不过逻辑层的是while(){} 表现层是while..endwhile,if..endif,for..endfor,foreach..endforeach这种
靠,没发现小林子也有这么高的PHP水平呀!
heredoc我搜索了下
php程序界有很多种模板技术和方法;但使用起来大多不太方便。
我经过思考和测试,发明了一种简单而巧妙的方法。
我的目标是:把html从php中分离出来,并且html中不包含php控制程序。
在php4中,提供了print<<< HTML 功能。举例如下:
$data="这里是内容";
print<<< HTML
$data
HTML;
?>
输出:这里是内容。
另外一方面,php中有函数eval()。它能够执行php代码。我们就结合上述
知识来建立一个通用的函数getTpl().如下:
下面是demo.php
<?php
$title='这是标题';
$data='这里是内容';
getTpl('demo');
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);
}
?>
下面是demo.htm
<html>
<head>
<title> $title </title>
</head>
<body>
<b>$title</b>
<p>$data
</body>
</html>
经过这样的处理后,在demo.htm中只有php要替换的变量,而没有任何其他php的多余代码了。
这样以来,外观和程序逻辑就得以完全分离,为网站的修改和后期维护提供了方便之门!
注:以上方法分离了php和html,代表了显示和逻辑的分离。但是以失去复杂控制为代价的
phpbb 我只找到是论坛程序 |
|