如何在不使用任何模板引擎(传统的php-not OOP)的情况下将Logic与表示分离 提前谢谢
答案 0 :(得分:4)
PHP本身可以用作模板引擎。在输出任何内容之前,先把所有逻辑都放好。简单地说:
echo
和foreach
等内容输出您在步骤2中放入变量的数据。答案 1 :(得分:4)
为什么不将PHP本身用作模板引擎?它在我为您的其他问题发布的代码中使用。您的程序必须分为两个主要部分:获取数据和显示数据。
每个页面都必须拥有自己的模板。在我发布的代码中,有2个非常简单的模板,form.php
和list.php
只需用整个网站模板扩展它,你就完成了!
这是一个更复杂的PHP模板示例:
<table border="0" cellpadding="2" cellspacing="0" width="600">
<? foreach ($data as $row): ?>
<tr bgcolor="#666699">
<td align=left>
<font color="white"><b><?=$row['name']?></b></font>
</td>
<td align=right><font color="white">
<?=$row['date'] ?>
</font></td>
</tr>
<tr bgcolor="f0f0f0">
<td colspan=2><?=$row['body'] ?></td>
</tr>
<? if ($row['answer']): ?>
<tr bgcolor="d3d3d3">
<td colspan=2 valign="top">
<table border="0" cellpadding="0" cellspacing="5">
<tr>
<td valign="top"><b>Answer: </b></td>
<td><?=$row['answer'] ?></td>
</tr>
</table>
</td>
</tr>
<? endif ?>
<? if($admin): ?>
<tr>
<td colspan=2>
<font size=-1>
<?=$row['id']?> - <?=$row['ip']?> - <?=$row['topic']?>
<? if($row['del']): ?>
<a href="/gb/?action=show&id=<?=$row['id']?>">show</a>
<? else: ?>
<a href="/gb/?action=hide&id=<?=$row['id']?>">hide</a>
<? endif ?>
<a href="/gb/?action=edit&id=<?=$row['id']?>">edit</a>
</font>
</td>
</tr>
<? endif ?>
<? endforeach ?>
</table>
它就像这样被称为
<?
//some code to get data
include 'tpl_top.php';
include 'tpl_list.php';
include 'tpl_bottom.php';
?>
对我来说很棒! 但是Dunno,如果这是你要求的:)