将php文件包含到网站页面中

时间:2015-02-09 16:02:02

标签: php html header include

我想要包含 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文件包含到网站页面中!

谢谢!

3 个答案:

答案 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)

如果您不想实现解析包含路径的方法,请使用框架。有许多小框架可以解决这个问题以及许多其他问题。