如何在PHP中引用Document Root之上的文件夹?

时间:2017-03-09 16:17:25

标签: php linux

我仍然是新手,并且我的子域名的文档根目录如下:

/home/myusername/public_html/lab2

我想要包含myusername/private文件夹中的文件:

/home/myusername/private/config.php

我尝试的是使用这样的东西:

include($_SERVER['DOCUMENT_ROOT'] . '/../../private/File.php');

..但是这给了我这个:

  

/家庭/名为myUsername /的public_html /实验2 /../../私人/ config.php中

当我尝试使用 dirname

include (dirname($_SERVER['DOCUMENT_ROOT'], 2) . "/private/config.php");

......它只给我最后一部分:

  

/private/config.php

编辑:我应该澄清一下,我想通过网站从不同的目录中调用此文件。例如:我在/home/myusername/public_html/lab2/academic/folder/test.php,我希望能够直接调用该特定file.php(即无需为每个页面手动调整'../../'部分)。

3 个答案:

答案 0 :(得分:2)

使用realpath获取要使用的文件夹根目录的完整路径。因此,如果您在lab2,那么您可以使用:

define("ROOT", realpath(__DIR__ . "/../");
define("ROOT_PRIVATE", realpath(ROOT . "/../private/");
include ROOT_PRIVATE . "/config.php";

我喜欢定义我可能不止一次使用的文件夹。如果您只想包含这一个文件,那么您可以这样做(假设您从lab2文件夹开始)。

include realpath(__DIR__ . "/../../private") . "/config.php";

答案 1 :(得分:0)

您可以直接使用:

include('/home/myusername/private/config.php');

答案 2 :(得分:0)

请测试以下代码:

echo realpath($_SERVER['DOCUMENT_ROOT'] . '/../../private/File.php');