我正在制作一个简单的模板系统。不能将代码保存在PHP文件中并将其输出到html文件中是很烦人的... 在模板中使用它并不好:
<?php
while ($row = mysql_fetch_array($query)) {
$name = $row['forum_name'];
$date = $row['forum_date'];
$desc = $row['forum_description'];
$lastpost = $row['forum_lastpost'];
?>
<h1><?php echo $name ?></h1>
<p><?php echo $desc ?></p>
<?php } ?>
有什么方法可以将代码保存在PHP文件中吗?
由于
答案 0 :(得分:2)
我建议在php文件中进行查询和处理,而不是在模板中。在php文件中构建一个数组,然后让模板显示它。
这就是我通常的做法:
PHP文件:
for ($i = 0; $row = mysql_fetch_array($query); $i++)
{
$forums[$i]['name'] = $row['forum_name'];
$forums[$i]['date'] = $row['forum_name'];
$forums[$i]['desc'] = $row['forum_description'];
$forums[$i]['lastpost'] = $row['forum_lastpost'];
}
模板文件:
<?php foreach ($forums as $forum) { ?>
<h1><?=$forum['name']?></h1>
<p><?=$forum['desc']?></p>
<?php } // foreach ($forums as $forum) ?>
另一种语法是使用“endwhile”,正如glavić所示:
<?php foreach ($forums as $forum): ?>
<h1><?=$forum['name']?></h1>
<p><?=$forum['desc']?></p>
<?php endforeach; ?>
答案 1 :(得分:1)
我喜欢使用PHP作为模板引擎并使用MVC模式。为了保持View和Business逻辑分离,View中只允许使用几种类型的PHP代码,即HTML代码。允许的代码是:
* Single functions
* Alternate format If / Else / ElseIf blocks
* Alternate format For loops
* Alternate format Foreach loops
* Alternate format Switch statements
PHP为其某些控制结构提供了另一种语法;即,if,while,for,foreach和switch。在每种情况下,替代语法的基本形式是将开括号分别更改为冒号(:)和结束括号为endif;,endwhile;,endfor;,endforeach;或endswitch;。这些替代格式是视图中应使用的唯一格式。
我会承认备用PHP语法较慢(因为解释器跳进和跳出PHP标记)。但是,这通常相当于毫秒的处理时间,并且与大多数环境中的当今服务器没什么区别。
最后,我更喜欢在View中使用速记PHP标签。这通常被认为是一个坏主意,因为服务器支持较少。但是,我认为它略微提高了可读性(特别是在使用PHP作为模板引擎时),我通常会避免使用无法控制此类事物的Web主机。
我更详细地描述了这一点,并在我的网页上有一些关于我为基于Web的PHP应用程序创建的模板的示例。您可以在以下网址找到。
答案 2 :(得分:0)
您可以使用http://dwoo.org/
之类的模板引擎或使用替代语法,如:
<?php while ($row = mysql_fetch_array($query)): ?>
<h1><?=$row['forum_name']?></h1>
<p><?=$row['forum_description']?></p>
<?php endwhile; ?>