Выбранный ответ работает только в средах, которые устанавливают переменные сервера и, в частности, не работают из сценария CLI. Кроме того, он не определяет родителя, а только самый верхний файл сценария.
Вы можете сделать почти то же самое из сценария CLI, посмотрев на $ argv [0], но он не предоставляет полный путь.
Независимое от среды решение использует 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'];
}