Как перечислить искомые пути require_once () в PHP? - PullRequest
4 голосов
/ 18 марта 2011

Мы все видели эту ошибку раньше:

Warning: require_once(test/blah.inc) [function.require-once]: failed to open stream: No such file or directory in /home/narf/narf.inc on line 3

Fatal error: require_once() [function.require]: Failed opening required 'test/blah.inc' (include_path='.:/usr/lib64/php:/usr/lib/php:/home/narf/inc:/home3/narf/php:/home3/narf/inc/dev:') in /home/narf/narf.inc on line 3

Супер раздражает.

Вот что я ищу: Какой-то фрагмент PHP-кода, который перечислитпути, которые ищутся для включаемого файла.

Из того, что я вижу, я правильно настроил свой путь (приведенный выше сценарий включения - просто выдумка), и я могу включить файлуспешно из других частей проекта.

Однако я просто не могу заставить его работать.Если бы у меня был список мест, в которых проводился поиск, я мог бы легко отследить путь, по которому я пропускаю, и определить, почему не работает мое требование / включение.

Мысли?Есть ли у кого-нибудь фрагмент кода, которым он мог бы поделиться?

Заранее спасибо за миллион!:)

Редактировать: По моему мнению, я разобрался с проблемой, но если у вас все еще есть что-то, что могло бы помочь, это было бы здорово для будущих неправильных настроек!:)

Редактировать 2: Спасибо всем, кто ответил.Получение пути включения - это хорошо, но я ищу фактические абсолютные пути к каталогам, которые ищутся.Причина, по которой я привередлива, заключается в том, что это сбивает с толку при использовании require () или include () вместе с относительными путями.Кроме того, я подозреваю, что есть некоторые другие ошибки, такие как (потенциально), следуют ли символические ссылки в данной настройке и т. Д.

Ответы [ 3 ]

6 голосов
/ 18 марта 2011

Требуется функция get_include_path() Документация

3 голосов
/ 18 марта 2011

Цитирование страницы руководства include:

Файлы включены на основе файла заданный путь или, если ничего не указано, include_path указано.
Если файл не найден в include_path, include() наконец проверит вызывая собственный каталог скрипта и текущий рабочий каталог перед неудача


И include_path является директивой конфигурации, которая (цитирование) :

Указывает список каталогов, где require(), include(), fopen(), file(), readfile() и file_get_contents() функции ищут файлы.

Его можно настроить в файле php.ini или во время выполнения, используя функцию set_include_path().

И, конечно же, для получения пути включения у вас есть get_include_path().

1 голос
/ 18 марта 2011

Путь указан в сообщении об ошибке: это значения в include_path

...