我试图创建包含相同页眉和页脚文件的网页,所以我不必不断添加它们。目前,我的index.php页面看起来是这样的:
// header include
ob_start();
include "includes/header.html.php";
$header = ob_get_clean();
// index include
ob_start();
include "templates/main.html.php";
$output = ob_get_clean();
//layout include
include "templates/layout.html.php";
我的布局模板会用
回显这些模板<?= $header; ?>
<?= $output; ?>
<?= $footer; ?>
对于索引页来说效果很好。但是问题出现时,我去另一个页面,例如,如果我重新定位到关于页面,我仍然可以通过文件夹导航到达标题(../../includes/header.html.php),但因为它是从不同的目录链接,其余的链接也将返回一个"对象丢失"的错误。
例如,重定向到'index.php'的Home将不再从About页面工作,因为工作的目录应该是'../../index.php' -但我无法改变这一点,因为它不会从我的主页链接。
About页面的代码与About。php页面的代码类似,我有
ob_start()
include "templates/about.html.php";
$output = ob_get_clean()
include "templates/layout.html.php"
对于这个页面,我也尝试过使用Home layout.html.php,因为它是相同的布局,只是不同的内容分配给$output变量,但它只是提出了头&页脚:
include "../../templates/layout.html.php";
对于About页面layout。html。php,我有
<?= "../../includes/header.html.php"; ?>
<?= $output ?>
<?php include "../../includes/footer.html.php"; ?>
我不太确定如何解决这个问题,所以任何帮助将不胜感激-请让我知道,如果我需要包括更多的信息-非常感谢!
编辑:我有我所有的页面在一个页面文件夹和Index.php在根-我只需要移动我的About.php根为好吗?
在相对路径中使用__DIR__
魔术常量。它包含当前脚本所在目录的路径,例如
<?php include __DIR__ . "/../../includes/footer.html.php"; ?>
PHP Manual: Magic Constants