我搜索了很多内容,并获得了很多不同的解决方案和包含信息的变量来获取绝对路径。但是它们似乎在某些条件下工作,而不在其他条件下工作。有没有一种方法可以获取PHP中已执行脚本的绝对路径?对我来说,该脚本将从命令行运行,但是,如果在Apache等内部运行,则解决方案也应起作用。
说明:最初执行的脚本,不一定是解决方案的编码文件。
正确的解决方案是使用以下get_included_files功能:
get_included_files
list($scriptPath) = get_included_files();
这将为您提供初始脚本的绝对路径,即使:
这是两个测试脚本;主脚本和包含的文件:
# C:\Users\Redacted\Desktop\main.php include __DIR__ . DIRECTORY_SEPARATOR . 'include.php'; echoScriptPath(); # C:\Users\Redacted\Desktop\include.php function echoScriptPath() { list($scriptPath) = get_included_files(); echo 'The script being executed is ' . $scriptPath; }
结果;注意当前目录:
C:\>php C:\Users\Redacted\Desktop\main.php The script being executed is C:\Users\Redacted\Desktop\main.php