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中没有这样的功能,您可以将组件移动到单独的文件中,并使用include
或require
函数将它们包含在主文件中。
不过,一些框架确实提供(模拟)这样的功能,例如,在cakePHP中,你可以有一个布局文件,你可以在其中输出你的页面。