在PHP中使用绝对路径的最佳方法是什么?

时间:2010-03-02 07:32:26

标签: php path

我一直在PHP中使用相对路径。上次我意识到有类似绝对路径的东西。

但使用它们的最佳方法是什么?

getenv("DOCUMENT_ROOT"); ?
dirname(__FILE__); ?

您如何处理实施?请提出一些想法。

3 个答案:

答案 0 :(得分:2)

当我想使用“relative”的文件到我正在编写代码的文件时,我总是使用:

dirname(__FILE__)

这允许我:

  • 拥有绝对路径,无论在哪个服务器上部署我的应用程序,都可以在任何地方使用
  • 在我写作时仍然使用“看起来像”相对的路径。


例如,要包含一个位于“类”子目录中的文件,我通常会使用:

require dirname(__FILE__) . '/classes/MyClass.php';

请注意,即使您从命令行执行脚本,这也会有效 - 而基于某种DocumentRoot的解决方案在不使用Web服务器时可能无法正常工作。


并且,使用PHP> = 5.3,您还可以使用__DIR__魔术常量,它与dirname(__FILE__)具有完全相同的值,但是在编译时进行评估,而不是执行时 - 这对表演来说有点好。

答案 1 :(得分:0)

我一直使用dirname(__FILE__),它完全符合我的需要。我在脚本执行开始时将它存储在一个变量中,该变量与我使用的任何全局数据一起携带,然后当我需要或包含新文件时,我可以很容易地将它包含在我的路径中而没有太多问题。

答案 2 :(得分:0)

我一直使用$_SERVER['DOCUMENT_ROT'] or $_SERVER['PHP_SELF']

我不认为,对于每个人我都认为