你必须改变你的页面结构并使用模板秒。
不要在代码顶部加载标题,而必须在底部加载标题! 页面代码不应该输出一个单词,而是收集变量中的所有数据。 只有在输出可以通过调用模板启动之后。
甲示例布局将是这样的:
首先。页面本身。
它输出什么但只收集所需数据,并调用模板:
<?
//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.php";
include "template.php";
?>
接下来,template.php
这是你的主要网站模板,包括页眉和页脚:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>My site. <?=$pagetitle?></title>
</head>
<body>
<div id="page">
<? include $tpl ?>
</div>
</body>
</html>
而且,最后,links.php
是实际的页面模板:
<h2><?=$pagetitle?></h2>
<ul>
<? foreach($DATA as $row): ?>
<li><a href="<?=$row['link']?>" target="_blank"><?=$row['name']?></a></li>
<? endforeach ?>
<ul>
容易,清洁和可维护。
有在这样的方法很多优点:
- 的要求,你可以填充实际的页面相关的数据头。
- HTTP标头也可以在任何输出之前发送。它包括cookies,会话,缓存控制等等。
- 今天是2011年。 AJAX时代。您可能希望更改您的代码以返回JSON数据而不是整个HTML页面。使用这种布局将会很容易。
- 想象一下,您将用不同的设计创建非常类似的网站。您将只需更改模板,不要触摸引擎文件。这对于使用模板来说非常有利。
你是什么意思“避免多个标签”? – Tim 2011-03-19 10:54:20
您好蒂姆,我很抱歉,我已经重新编辑了这个问题(没有意识到StackOverflow的格式化规则)。我很感激如果你现在可以再读一遍,它会更清晰:) – Israel 2011-03-19 11:03:36
本网站编辑器顶部有一个明亮的'?'按钮。下次点击它,它有很多格式化的信息。 – Mat 2011-03-19 11:04:52