标签: php directory relative-path include-path
我在.htaccess文件中包含了一个包含某些类的文件夹。
.htaccess
在public_html下更深处的某处,我包含了此文件夹中的PHP文件。工作正常,include_path生效。
public_html
include_path
但如果我写这样的话:
require_once '../DB.php';
它失败了?
此文件位于包含文件夹的上方,为什么PHP引擎无法找到它?
答案 0 :(得分:2)
始终从当前工作目录(通常称为CWD)解释相对路径。对于Web请求,这通常是获取请求处理的文件目录,但可以随时使用chdir()进行更改,您可以使用getcwd()检查其当前值。
chdir()
getcwd()
如果你希望你的代码对cwd具有弹性,你可以使用__DIR__魔法常量,或者如果你使用古老的php版本(5.3之前),你的包含中的dirname(__FILE__)就像这样:
__DIR__
dirname(__FILE__)
require_once __DIR__.'/../DB.php';