PHP Pathing问题

时间:2011-08-01 08:08:48

标签: php

我有点困惑,所以你能想出的任何答案都会帮助我开始研究问题所在的位置。

我有/folder1/API.php使用:require_once('../ folder2 / Core.php');

然后我使用/folder1/Panel.php:require_once('folder2 / Core.php'); (请注意,没有'..')。

不知何故,API.php和Panel.php都可以找到Core.php,即使它们位于同一个文件夹但是require_once参数不同。

甚至更奇怪:在/folder2/Core.php中,有require_once('../ folder3 / DBConfig.php');其中API.php能够通过,但是当从Panel.php调用一个函数时,它说我找不到'../ folder3 / DBConfig.php'。

2 个答案:

答案 0 :(得分:4)

要求(和包含)也会搜索您的包含路径,也许文件夹包含在那里。

  

根据给定的文件路径包含文件,如果没有给出,则包含   指定的include_path。如果在。中找不到该文件   include_path,include()最终将检入调用脚本自己的   失败前的目录和当前工作目录。该   include()构造将在无法找到文件时发出警告;这个   是require()的不同行为,它将发出致命错误。   http://www.php.net/manual/en/function.include.php

答案 1 :(得分:0)

请注意..说index.php包含另一个文件夹中的文件test.php

test.php包含一些包含其他文件的相对路径。

由于test.php中包含index.php,因此其中的所有相对路径都将相对于index.php进行计算(因此大多数都会被破坏)


还有一件事:

Files are included based on the file path given or, if none is given, the include_path specified. If the file isn't found in the include_path, include() /and likewise require/ will finally check in the calling script's own directory and the current working directory before failing.