我在.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';