我的情况:我有一个我想在很多地方使用的课程,所以我把它放在目录树中:
/www/libs/classA/classA.php
它使用位于名为config.ini
的同一目录中的配置文件,并在构造函数中本地引用它。但是,当我从不同目录中的脚本中包含它时,它会尝试从调用脚本所在的目录中加载配置文件。有没有什么办法可以查看包含文件所在的目录?理想情况下,我可以将脚本移动到其他目录,而不是对其进行任何更改。
答案 0 :(得分:4)
包含/加载文件时应使用绝对路径。您可以使用__FILE__
constant和dirname
function
dirname(__FILE__).'/config.ini'
这将是当前执行的脚本文件所在的同一目录中config.ini
文件的绝对路径。因此,当您的classA.php
脚本文件中执行该代码时,您将获得/www/libs/classA/config.ini
。
答案 1 :(得分:0)
如果参数中没有路径信息,您应该能够包含/要求当前文件目录中的文件,例如:包括( 'file2.php');.但我想即使你有'./file2.php'),它也会变成相对于第一个包含/执行的脚本的目录。
我喜欢dirname(____ FILE ____)...方法,但我相信在某一组文件总是要部署在同一目录中的情况下,直接文件包括促进内聚。