Ответ 1
Решением может быть использование функции debug_backtrace
: в backtrace должна присутствовать такая информация.
Или, как указал Гордон в комментарии, вы также можете использовать debug_print_backtrace
, если хотите просто вывести эту информацию и не работать с ним.
Например, с temp.php
, содержащим это:
<?php
include 'temp-2.php';
my_function();
и с temp-2.php
, содержащим это:
<?php
function my_function() {
var_dump(debug_backtrace());
}
Вызов temp.php
(i.e. the first script)
из моего браузера дает мне этот результат:
array
0 =>
array
'file' => string '/.../temp/temp.php' (length=46)
'line' => int 5
'function' => string 'my_function' (length=11)
'args' =>
array
empty
В нем есть "temp.php
" имя файла - это тот, в котором функция была вызвана.
Конечно, вам придется протестировать немного больше (особенно в ситуациях, когда функция не находится в файле "первый уровень", но в файле, включенном другим - не уверен, что debug_backtrace
поможет многое, там...); но это может помочь вам получить первую идею...