Получить имя файла, в котором запущен PHP,

При использовании PHP include , как я могу узнать, какой файл вызывает include ? Короче говоря, что такое имя файла родительского файла?

Solutions Collecting From Web of "Получить имя файла, в котором запущен PHP,"

Простым способом является назначение переменной в родительском файле (до включения), а затем ссылка на эту переменную во включенном файле.

Родительский файл:

 $myvar_not_replicated = __FILE__; // Make sure nothing else is going to overwrite include 'other_file.php'; 

Включенный файл:

 if (isset($myvar_not_replicated)) echo "{$myvar_not_replicated} included me"; else echo "Unknown file included me"; 

Вы также можете get_included_files() с get_included_files() или debug_backtrace() и найти событие, когда и где файл был включен, но это может стать немного грязным и сложным.

 $fileList = get_included_files(); $topMost = $fileList[0]; if ($topMost == __FILE__) echo 'no parents'; else echo "parent is $topMost"; 

Я думаю, что это должно дать правильный результат, когда есть один родитель.

Под этим я подразумеваю ситуацию, когда родитель не является обязательным или включенным файлом.

Поздний ответ, но …

Я проверяю текущее родительское имя файла, используя:

 $_SERVER["SCRIPT_NAME"] // or $_SERVER["REQUEST_URI"] // (with query string) 

В родительском файле добавьте эту строку, прежде чем включать дочерний файл:

 $_SESSION['parent_file'] = $_SERVER['PHP_SELF']; 

А затем в дочернем файле прочитайте переменную сеанса:

 $parent_file = $_SESSION['parent_file']