使用PHP和HTML编写模板的首选方法

时间:2012-02-26 03:36:04

标签: php html templates

在创建我自己的模板时,似乎有两种方法可以使用PHP和HTML显示我的身体内容。哪种方法往往是首选或最正确的方法?

有行业标准吗?例如 - 如果我向Facebook展示我的代码,雇用我的人会找某种方法吗?

他们两人起初都很笨拙。

方法#1

<?php
//Begins with <body>
templateGetAboveContent();

//Begin unique content
?>
<h1>Example Header</h1>
<div id="article_container">
<?php
if ($row = mysql_fetch_assoc(mysql_query($get_article_sql))
{
    ?>
    <div id="article"><?php echo $row['article_content'];?></div>
    <?php
}
templateGetBelowContent();
?>

方法#2

<?php
$body = "";
$body .= "<h1>Example Header</h1>";
$body .= "<div id=\"article_container\">";
if ($row = mysql_fetch_assoc(mysql_query($get_article_sql))
{
    $body .= "<div id=\"article\">" . $row['article_content'] . "</div>";       
}
templateGetDisplayContent($body);
?>

方法#2 中,templateGetDisplayContent()只是echo $body;应该在displayAbove和displayBelow代码之间。

4 个答案:

答案 0 :(得分:2)

这两种方法显然与模板完全无关 第一个更接近但是在模板中看到一个单词“mysql”可以说是失败的尝试肯定。

您必须严格区分数据处理部分和数据显示部分 在所有数据准备好之前,不应该向浏览器发送单个符号。

因此,请将您的网站包含页面,页面模板和主要模板 一旦你的脚本被调用,它就必须处理数据,然后加载网站模板,然后加载网页模板。

示例布局将如下所示: 一页:

<?
//include our settings, connect to database etc.
include dirname($_SERVER['DOCUMENT_ROOT']).'/cfg/settings.php';
//getting required data
$DATA=dbgetarr("SELECT * FROM links");
$pagetitle = "Links to friend sites";
//etc
//and then call a template:
$tpl = "links.tpl.php";
include "template.php";
?>

它输出没有但只收集所需数据并调用模板:

template.php这是您的主要网站模板,

包含你的错误.. templateGetAboveContent()和templateGetBelowContent():

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>My site. <?=$pagetitle?></title>
</head>
<body>
<div id="page">
<? include $tpl ?>
</div>
</body>
</html>

并调用实际的页面模板:

<h2><?=$pagetitle?></h2>
<ul>
<? foreach($DATA as $row): ?>
<li><a href="<?=$row['link']?>" target="_blank"><?=$row['name']?></a></li>
<? endforeach ?>
<ul>

这将是模板的真实使用。

请注意,主网站模板能够显示变量文本取决于当前页面内容。

  

是否有行业标准?

没有。有几个标准 从HTML迁移更接近其中之一,但你仍然使用它错误的方式。

答案 1 :(得分:1)

任何编程语言都是为了给开发人员提供灵活性而构建的。它们只是为程序员提供的“工具包”,它由程序员来实现他们想要完成的东西(并发明东西)。据我所知,有很多模板引擎(内置于框架和独立框架中)可以简化页面渲染,但牺牲了灵活性,易于使用。

你提到Facebook(肯定会发现他们使用的是PHP)。但是,您不知道的是,他们有开发人员构建他们自己的API,其中可能包括他们页面的模板 - 换句话说,他们自己的实现。

总而言之,这取决于您将要做什么以及您目前使用的工具。您应该尝试使用框架和其他工具进行探索。您将了解到每个人如何实施他们的模板方法(迟早您会倾向于这些方法中的一个或两个)。

个人建议:尝试mustache

答案 2 :(得分:0)

对此没有100%正确答案,因为两者最终都能为您提供所需的目标。

使用方法1可能会让您在需要更新模板时更好地与模板进行交互。

特别是如果涉及像设计师这样的另一方,谁提供静态HTML。

您可以轻松地进入,只需在需要的地方添加PHP标记/代码。

答案 3 :(得分:-1)

就个人而言,我认为第一个例子简单明了。而且我认为有人会雇用你会想到同样的事情。另外,将所有身体内容保存在变量中将是整个站点使用的麻烦。