我正在构建自己的小博客平台,作为PHP和MySQL的练习/乐趣/练习。我目前正在使用以下代码输出正确的格式(效果很好):
$rows=mysql_num_rows($postsresult);
for ($j=0 ; $j < $rows ; ++$j){
$row=mysql_fetch_row($postsresult);
echo <<<_END
<div class="titlebox"> $row[3] </div>
<div class="maincontent"> $row[2]
<div class="postclosercontainer">
<div class="postcloser">Sincerely, <br />
Samuel'<span>Explosion Festival</span>' Shenaniganfest </div>
</div></div>
_END;
}
但是,我发现while($info=mysql_fetch_array($postsresult){
代码更容易编码,因为数据是按名称而不是数组编号存储的(对于任何多个字段,这些数据都会变得更加难以记住)。
我尝试使用之前的while循环更新代码,但发现当我按名称从数组中提取数据时,它不再在&lt;&lt;&lt; _END标记内正常运行。
例如:<div class="titlebox"> $data['title']
会产生错误。
有没有办法在&lt;&lt;&lt; _END标签内完成此操作,或者我应该只使用每行的打印功能?另一方面,这是否是正确的编码技术? (我只是个业余爱好者。)
答案 0 :(得分:2)
更好的是直接编写HTML。这样可以更轻松地维护HTML,并且您可以使用IDE中的功能,例如语法突出显示或代码完成。
示例:
<?php
// your other code
?>
<?php while(($info=mysql_fetch_array($postsresult))): ?>
<div class="titlebox"><?php echo $info['title']; ?> </div>
<div class="maincontent">
<?php echo $info['content']; ?>
<div class="postclosercontainer">
<div class="postcloser">Sincerely, <br />
Samuel'<span>Explosion Festival</span>' Shenaniganfest
</div>
</div>
</div>
<?php endwhile; ?>
我正在使用alternative syntax for control structures。它在处理HTML时提高了可读性,特别是如果你有嵌套的控制结构(嵌入HTML时更难以发现括号)。