13

在 php 中,如果我有一个文件需要来自子目录的文件,例如:

require('directory/file.php');

并且file.php想要在自己的目录中需要另一个文件,路径是相对于file.php它还是包含在其中的文件?

4

3 回答 3

8

如果有意义的话,它是相对于原始要求文件的。

因此,如果您有一个名为 index 的文件,如下所示:

require("./resources/functions.inc.php");

然后functions.inc.php 需要看起来像这样:

require("./resources/anotherFunctionsFile.inc.php");

而不是:

require("anotherFunctionsFile.inc.php);

但实际上你应该使用__DIR__常量,它始终是运行脚本的目录;它使事情变得容易得多。

有关__DIR__和其他常量的更多信息:http: //php.net/manual/en/language.constants.predefined.php

我希望这会有所帮助。

于 2013-02-15T12:33:22.737 回答
4

它与主脚本相关,在本例中为 A.php。请记住,require()只是将代码插入到当前运行的脚本中。

也就是说,require()从哪个文件调用它是否重要

不。

如果你想让它变得重要,并且require()相对于 B.php,请使用__FILE__常量(或__DIR__自 PHP 5.3 起),如果代码位于该行,它将始终指向该行的文字当前文件。

include(dirname(__FILE__)."/C.PHP");
于 2013-02-15T12:34:58.507 回答
1
include(dirname(__FILE__).'/include.php');

参考: http: //php.net/manual/en/language.constants.predefined.php

文件的完整路径和文件名。如果在包含中使用,则返回包含文件的名称。自 PHP 4.0.2 起,FILE 始终包含一个绝对路径,其中符号链接已解析,而在旧版本中,它在某些情况下包含相对路径。

于 2013-02-15T12:32:59.197 回答