Php 模板和while循环
我正在制作一个简单的模板系统。无法将代码保存在PHP文件中并将其输出到html文件中,这很烦人。。。 在模板中包含以下内容不太好:Php 模板和while循环,php,Php,我正在制作一个简单的模板系统。无法将代码保存在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']; ?&g
<?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文件中吗
谢谢您可以像这样使用模板引擎 或者使用其他语法,如:
<?php while ($row = mysql_fetch_array($query)): ?>
<h1><?=$row['forum_name']?></h1>
<p><?=$row['forum_description']?></p>
<?php endwhile; ?>
我建议在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; ?>
我喜欢使用PHP作为模板引擎,并使用MVC模式。为了使视图和业务逻辑保持分离,视图中只允许使用几种类型的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;,(完);;,endfor;,endforeach;,或结束开关;,分别地这些替代格式是视图中应使用的唯一格式
我承认替代的PHP语法比较慢(因为解释器正在跳入和跳出PHP标记)。但是,这通常相当于毫秒的处理时间,并且与大多数环境中的当今服务器没有什么区别
最后,我更喜欢在视图中使用速记PHP标记。这通常被认为是一个坏主意,因为服务器支持较少。但是,我相信它稍微提高了可读性(特别是当使用PHP作为模板引擎时),我通常会避免使用我无法控制这些事情的web主机
我将更详细地描述这一点,并在我的网页上提供一些关于我为基于web的PHP应用程序创建的模板的示例。您可以在下面的URL中找到
不,这将在每次循环中向数组添加4个新元素,每个元素都有一个变量集。PHP块中的缩进作为标记式结构是好的,但请记住htmlspecialchars()论坛名称和描述以避免HTML注入。