获取初始运行脚本的绝对路径

新手上路,请多包涵

我搜索了很多不同的解决方案和包含信息的变量以获得绝对路径。但它们似乎在某些条件下有效,而在其他条件下无效。有没有一种银弹方法可以在 PHP 中获取已执行脚本的绝对路径?对我来说,脚本将从命令行运行,但是,如果在 Apache 等中运行,解决方案应该同样有效。

澄清:最初执行的脚本,不一定是编码解决方案的文件。

原文由 inquam 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 323
2 个回答
echo realpath(dirname(__FILE__));

如果你把它放在一个包含文件中,它会打印这个包含的路径。要获取父脚本的路径,请将 __FILE__ 替换为 $_SERVER['PHP_SELF'] 。但请注意 PHP_SELF 存在安全风险!

原文由 rik 发布,翻译遵循 CC BY-SA 2.5 许可协议

__FILE__ 常量将为您提供当前文件的绝对路径。

更新

问题已更改为询问如何检索最初执行的脚本而不是当前正在运行的脚本。唯一(??) 可靠的 方法是使用 debug_backtrace 功能。

 $stack = debug_backtrace();
$firstFrame = $stack[count($stack) - 1];
$initialFile = $firstFrame['file'];

原文由 zerkms 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题