我搜索了很多不同的解决方案和包含信息的变量以获得绝对路径。但它们似乎在某些条件下有效,而在其他条件下无效。有没有一种银弹方法可以在 PHP 中获取已执行脚本的绝对路径?对我来说,脚本将从命令行运行,但是,如果在 Apache 等中运行,解决方案应该同样有效。
澄清:最初执行的脚本,不一定是编码解决方案的文件。
原文由 inquam 发布,翻译遵循 CC BY-SA 4.0 许可协议
__FILE__
常量将为您提供当前文件的绝对路径。
更新:
问题已更改为询问如何检索最初执行的脚本而不是当前正在运行的脚本。唯一(??) 可靠的 方法是使用 debug_backtrace
功能。
$stack = debug_backtrace();
$firstFrame = $stack[count($stack) - 1];
$initialFile = $firstFrame['file'];
原文由 zerkms 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答1.3k 阅读✓ 已解决
2 回答824 阅读✓ 已解决
1 回答910 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
2 回答882 阅读
1 回答873 阅读
1 回答803 阅读
如果你把它放在一个包含文件中,它会打印这个包含的路径。要获取父脚本的路径,请将
__FILE__
替换为$_SERVER['PHP_SELF']
。但请注意 PHP_SELF 存在安全风险!