如何从另一个目录中包含文件

时间:2010-09-17 19:59:19

标签: php

在根目录(www)中,我有两个文件夹。

在第一个文件夹“folder1”中,我放了一个名为register.php的文件。

在下一个文件夹“folder2”中,我放了一个名为header.php和footer.php的文件。

我需要在register.php文件中包含folder2的页眉和页脚文件。

我该怎么做?我试着用这个包括../folder2/header.php
..但它不起作用

7 个答案:

答案 0 :(得分:18)

在某些配置中,添加./(当前目录)可以实现这样的诀窍:

include './../folder2/header.php';

或者,您可以根据文档根目录进行指定:

include $_SERVER['DOCUMENT_ROOT'] . 'folder2/header.php';

答案 1 :(得分:1)

<?php include( $_SERVER['DOCUMENT_ROOT'] . 'folder2/header.php' ); ?> 

答案 2 :(得分:0)

include $_SERVER['DOCUMENT_ROOT'] . '/folder2/header.php';

可以在网站的任何目录中使用 它被称为absolute path,它是解决文件的唯一可靠方法

然而,实际上它应该像

include $_SERVER['DOCUMENT_ROOT'] . '/cfg.php';
// some code
include $TPL_HEADER;

使用先前在cfg.php

中定义的变量

然而,它也可能失败。因为你对这些路径可能是错的 这是你的主要问题:

  

但它不起作用

没有“它不起作用”这样的事情 总有一个全面的错误消息可以告诉您完全哪些不起作用以及取而代之的是什么。您没有自己阅读,也没有在此发布,让我们向您显示这些错误消息中的正确路径

答案 3 :(得分:0)

包含文件通常应保留在服务器根目录之外。

让我们说你的设置是;

www/website1

www/includes

然后你的php.ini文件或.htaccess文件应该规定

的include_path = WWW /包括

然后从你的任何文件,在任何目录中,无论你走到树下多远,你都可以做到:

include 'myfile.php';

其中myfile.php位于www / includes / myfile.php

然后你可以不再担心这些问题了

答案 4 :(得分:0)

include dirname(__FILE__).'/../folder2/header.php';

答案 5 :(得分:0)

试试这是我的工作

<?php require_once __DIR__."/../filename.php";?>

答案 6 :(得分:-2)

正如PHP手册所述,here $ _SERVER ['DOCUMENT_ROOT']是“当前脚本正在执行的文档根目录,如服务器配置文件中所定义。”对于这个例子,$ _SERVER ['DOCUMENT_ROOT']可以正常工作但是。 。 。通过使用&gt; = PHP 5.3中提供的新"magic constants",我们可以使此代码更安全一些。

将您的包含放在子文件夹中,并使用魔术常量 DIR 来引用包含的文件。 DIR 返回当前正在执行的php文件的目录。通过使用此功能,您可以在目录结构中的任何位置移动包含所有包含的文件夹,而无需担心包含内容是否仍然有效。