Могу ли я получить путь к файлу PHP, первоначально вызванному во включенном файле? - PullRequest
1 голос
/ 26 сентября 2008

Допустим, у нас есть index.php, и он хранится в /home/user/public/www, а index.php вызывает класс Foo->bar() из файла inc/app/Foo.class.php.

Мне бы хотелось, чтобы функция bar в классе Foo в этом случае получила путь /home/user/public/www - я не хочу использовать глобальную переменную, передавать переменную и т. Д.

Ответы [ 4 ]

14 голосов
/ 26 сентября 2008

Вы можете использовать debug_backtrace , чтобы посмотреть путь вызова и получить файл, вызывающий эту функцию.

Краткий пример:

class Foo {
  function bar() {    
   $trace = debug_backtrace();
   echo "calling file was ".$trace[0]['file']."\n";
  }
}
9 голосов
/ 26 сентября 2008

Разве это не даст вам каталог с запущенным скриптом?

$dir=dirname($_SERVER["SCRIPT_FILENAME"])
2 голосов
/ 26 сентября 2008

getcwd() получает текущий рабочий каталог

Он может быть изменен по разным причинам сторонними модулями, включая или даже ваш собственный код, путем выдачи chdir().

debug_backtrace(), как предложила Девон, - это ответ, который вы ищете.

1 голос
/ 26 сентября 2008

Нашел это. getcwd ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...