Php - 获取父脚本名称

Max*_*rai 14 php parent

parent.php:

require_once 'child.php';
Run Code Online (Sandbox Code Playgroud)

child.php:

echo __FILE__;
Run Code Online (Sandbox Code Playgroud)

它会显示'.../child.php'

我怎么能得到'.../parent.php'

dan*_*ton 19

所选答案仅适用于设置服务器变量的环境,特别是不能使用CLI脚本.此外,它不确定父级,而只确定最顶层的脚本文件.

您可以通过查看$ argv [0]从CLI脚本执行几乎相同的操作,但这不提供完整路径.

与环境无关的解决方案使用debug_backtrace:

function get_topmost_script() {
  $backtrace = debug_backtrace(
      defined("DEBUG_BACKTRACE_IGNORE_ARGS")
      ? DEBUG_BACKTRACE_IGNORE_ARGS
      : FALSE);
  $top_frame = array_pop($backtrace);
  return $top_frame['file'];
}
Run Code Online (Sandbox Code Playgroud)

  • 可能这里必须是“array_shift”而不是“array_pop” (2认同)

Sam*_*son 14

print $_SERVER["SCRIPT_FILENAME"];
Run Code Online (Sandbox Code Playgroud)