Могу ли я получить путь к файлу PHP, первоначально вызванному во включенном файле?
Вопрос
Допустим, у нас есть index.php
и он хранится в /home/user/public/www
и index.php
звонит в класс Foo->bar()
из файла inc/app/Foo.class.php
.
Мне нужна функция панели в Foo
класс, чтобы захватить путь /home/user/public/www
в данном случае — я не хочу использовать глобальную переменную, передавать переменную и т. д.
Решение
Разве это не облегчит вам доступ к каталогу работающего скрипта?
$dir=dirname($_SERVER["SCRIPT_FILENAME"])
Другие советы
Вы можете использовать debug_backtrace чтобы просмотреть путь вызова и получить файл, вызывающий эту функцию.
Краткий пример:
class Foo {
function bar() {
$trace = debug_backtrace();
echo "calling file was ".$trace[0]['file']."\n";
}
}
getcwd()
получает текущий рабочий каталог
Его можно изменить по разным причинам с помощью сторонних модулей, включений или даже вашего собственного кода, выпустив chdir()
.
debug_backtrace()
как предположил Девон, это ответ, который вы ищете.
Нашел.получитьcwd().