我想要包含 header.php &我在每个页面中创建的 footer.php 文件。到目前为止它一直在工作!
一旦我创建了一个新目录,例如/ new-site-area - 当我创建一个新的php页面并尝试包含header.php时,这就没有找到工作了吗?
这是我正在使用的php包含,它正在运行......
<?php include ("includes/header.php");?>
我试图将其包含在/目录中的页面中时似乎停止工作。
示例:
www.mysite.com - 标题包括作品
www.mysite.com/new-directory/new-area - header include不起作用
我无法理解为什么它会在我的网站root上运行,但不会在页面位于我网站的不同/区域时立即生效。
如果这是一个无法解决的问题,有人可以建议更好的方法将php文件包含到网站页面中!
谢谢!
答案 0 :(得分:2)
您必须使用return参数&#34; ../"
浏览您的目录例如,您的页面
www.mysite.com/new-directory/
应该使用
<?php include ("../includes/header.php");?>
用于2级文件夹,例如
www.mysite.com/new-directory/new-directory2
应该是
<?php include ("../../includes/header.php");?>
答案 1 :(得分:1)
尝试include "../includes/header.php"
- 最好的方法是编写一些包含它的功能,例如:
function load($file) {
return $_SERVER['DOCUMENT_ROOT']."/includes/$file";
}
然后只使用include(load("header.php"));
或者,如果您希望load()
函数支持多个路径,请尝试以下操作:
function load($file) {
$paths = array(
"includes",
"some_other_dir/includes"
);
foreach($paths as $path) {
if(file_exists($_SERVER['DOCUMENT_ROOT']."/$path/$file")) {
return $_SERVER['DOCUMENT_ROOT']."/$path/$file";
}
}
trigger_error("File $file not found in any of paths", E_USER_ERROR);
}
然后,如果文件位于指定的任何路径中,它将通过include(load("file.php"));
包含,如果该文件不存在,则会引发错误。
答案 2 :(得分:0)
如果您不想实现解析包含路径的方法,请使用框架。有许多小框架可以解决这个问题以及许多其他问题。