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

2022-08-30 06:09:17

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

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


答案 1

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

更新

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

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

答案 2
echo realpath(dirname(__FILE__));

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


推荐