PHP相当于site.master?

时间:2011-05-08 17:19:16

标签: php html server-side-includes

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

过去在PHP中,我使用了Server Side Includes来删除重复的HTML /代码(例如文档的顶部,主导航,页脚等),但显然你无法改变任何内容页面。

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

感谢。

4 个答案:

答案 0 :(得分:4)

这只是名为模板引擎,并且有很多引擎用于php。

Smarty就是其中之一

答案 1 :(得分: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>

答案 2 :(得分:1)

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

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

一些样本:

答案 3 :(得分:0)

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

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