我想在我的php应用程序中使用自定义模板系统,
我想要的是我想要从设计中删除我的php代码,我想使用tpl文件进行设计,使用php文件进行php代码
我不想使用任何现成的女佣脚本。可以任何人指出一些链接或有用的信息如何建立一个PHP模板系统来实现这个
谢谢
答案 0 :(得分:5)
我这样做的方法是创建一个模板文件(如果你愿意的话.tpl)并插入将在PHP中用str_replace替换的标记。代码看起来像这样:
对于template.tpl文件
<body>
<b>Something: </b> <!-- marker -->
</body>
对于PHP
$template = file_get_contents('template.tpl');
$some_data = 'Some Text'; //could be anything as long as the data is in a variable
$template = str_replace('<!-- marker -->', $some_data, $template);
echo $template;
简而言之,它可以变得更加复杂。标记可以是任何东西,只要它是唯一的。
答案 1 :(得分:2)
我想从设计中删除我的php代码,我想使用tpl文件进行设计
...并将你的tpl代码与“design”混合!
那有什么不同呢? :)
PHP本身就是高效的模板系统
现在大多数开发人员都认为将PHP代码划分为业务逻辑部分和显示逻辑部分是最可取的方式。
它当然可以是非常有限的PHP子集。您将需要一个输出运算符(<?=$var?>
),一个条件<? if(): ?>...<? endif ?>
,一个循环<? foreach(): ?>...<? endforeach ?>
和include。
这种模板的一个例子:
<table>
<? foreach ($data as $row): ?>
<tr>
<td><b><?=$row['name'] ?></td>
<td><?=$row['date'] ?></td>
</tr>
<tr>
<td colspan=2><?=$row['body'] ?></td>
</tr>
<? if ($row['answer']): ?>
<tr>
<td colspan=2 valign="top">
<table>
<tr>
<td valign="top"><b>Answer: </b></td>
<td><?=$row['answer'] ?></td>
</tr>
</table>
</td>
</tr>
<? endif ?>
<? if($admin): ?>
<tr>
<td colspan=2>
<? if($row['del']): ?>
<a href="/gb/?action=undelete&id=<?=$row['id']?>">show</a>
<? else: ?>
<a href="/gb/?action=delete&id=<?=$row['id']?>">hide</a>
<? endif ?>
<a href="/gb/?action=edit&id=<?=$row['id']?>">edit</a>
</td>
</tr>
<? endif ?>
<? endforeach ?>
</table>