ASP.Net的一个好处是能够设置一个site.master
文件,该文件包含来自站点的所有重复的HTML /代码,并且仍然能够从单个网站页面更改其中的内容。 (例如,更改每个页面的<title>
标记,或将其他内容添加到文档的<head>
。)
过去在PHP中,我使用了Server Side Includes来删除重复的HTML /代码(例如文档的顶部,主导航,页脚等),但显然你无法改变任何内容页面。
有没有办法在PHP中实现site.master
类型功能? 如果不是,有什么方法可以删除重复的HTML /代码,同时仍然可以更改页面标题,突出显示的导航等内容。
感谢。
答案 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中没有此类功能,您可以将组件移动到单独的文件中,并使用include
或require
函数将它们包含在主文件中。
有些框架确实提供(模拟)此类功能。例如在cakePHP中,您可以拥有一个可以输出页面的布局文件。