在创建我自己的模板时,似乎有两种方法可以使用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代码之间。
答案 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)
就个人而言,我认为第一个例子简单明了。而且我认为有人会雇用你会想到同样的事情。另外,将所有身体内容保存在变量中将是整个站点使用的麻烦。