在包含的文件夹中包含文件';的父目录失败


Including a file in an included folder's parent directory fails

我在.htaccess文件中包含了一个包含一些类的文件夹。

public_html下面的某个更深的地方,我包含了这个文件夹中的一个PHP文件。工作正常,include_path有效。

但如果我写这样的东西:

require_once '../DB.php';

它失败了?

这个文件就在包含的文件夹上方,为什么PHP引擎找不到它?

相对路径始终从当前工作目录(通常称为CWD)进行解释。对于web请求,这通常是获得请求处理的文件的目录,但可以随时使用chdir()进行更改,您可以使用getcwd()检查其当前值。

如果你想让你的代码对cwd有弹性,你可以使用__DIR__魔术常数,或者如果你使用的是一个古老的php版本(5.3之前),你的include中的dirname(__FILE__),比如:

require_once __DIR__.'/../DB.php';