0

ASP.Net 的优点之一是能够设置一个site.master包含站点所有重复 HTML/代码的文件,并且仍然能够从单个网站页面更改其中的内容。(例如,更改每个页面的标签,或在文档中<title>添加其他内容。)<head>

在过去的 PHP 中,我使用服务器端包含来删除重复的 HTML/代码(例如文档顶部、主导航、页脚等),但显然您无法更改页面中的任何内容。

有没有办法site.master在 PHP 中实现类型功能?如果没有,有什么好方法可以删除重复的 HTML/代码,同时仍然能够更改页面标题、突出显示的导航等内容。

谢谢。

4

4 回答 4

4

这只是称为模板引擎,并且有大量的 php 引擎。

Smarty就是其中之一

于 2011-05-08T17:32:12.853 回答
2

拉入公共片段的最简单方法是使用require()它将允许您在当前文件中包含其他文件。

如何使用它的示例:

header.php - 一个可重用的片段

<div class="header">
    <h1><?= $pageTitle ?></h1>
</div>

pageContents.php

<body>
<?php
$pageTitle = 'Check it out, the Foobar page!';
require('header.php');
?>
blah blah
</body>
于 2011-05-08T17:22:36.437 回答
1

您正在寻找的是为 PHP 构建的模板引擎。ASP 是一个内置模板的框架,它为您提供您所指的功能(即模板、会员提供程序等)

为了在 PHP 中获得相同的效果,您需要使用框架或模板引擎。

一些样本:

于 2011-05-08T18:00:07.350 回答
0

PHP 中没有这样的功能,您可以将组件移动到单独的文件中,并使用includerequire函数将它们包含在您的主文件中。

一些框架确实提供(模拟)这样的功能。例如,在 cakePHP 中,您可以有一个布局文件,您可以在其中输出您的页面。

于 2011-05-08T17:22:37.230 回答