PHP equivalent to site.master?


PHP equivalent to site.master?

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

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

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

谢谢。

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

聪明就是其中之一

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

如何使用它的示例:

标头.php - 可重用的片段

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

页面内容.php

<body>
<?php
$pageTitle = 'Check it out, the Foobar page!';
require('header.php');
?>
blah blah
</body>

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

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

一些示例:

  • http://www.webresourcesdepot.com/19-promising-php-template-engines/
  • http://www.phpframeworks.com/

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

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