Могу ли я получить путь к файлу PHP, первоначально вызванному во включенном файле?

StackOverflow https://stackoverflow.com/questions/139794

  •  02-07-2019
  •  | 
  •  

Вопрос

Допустим, у нас есть 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().

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top