2009-06-11 3 views
0

Моя ситуация: У меня есть класс, который я хочу использовать в ряде мест, поэтому я поместил его высоко в дереве каталогов:Как включили/необходимые скрипты использовать локальные файлы

/www/libs/classA/classA.php 

Он использует файл конфигурации, расположенный в том же каталоге, что и config.ini, и ссылается на него локально в конструкторе. Однако, когда я включаю его из сценария в другой каталог, он пытается загрузить файл конфигурации из каталога, в котором находится вызывающий скрипт. Есть ли способ, которым я могу посмотреть в каталоге, в который входит файл? В идеале я мог бы переместить скрипт в другой каталог и не вносить никаких изменений в него.

ответ

4

Вы должны использовать абсолютный путь при включении/загрузке файлов. И вы можете получить, что абсолютный путь с __FILE__ constant и dirname function:.

dirname(__FILE__).'/config.ini' 

Это будет пять вы абсолютный путь config.ini файла в том же каталоге, в настоящее время выполняется файл сценария находится в Поэтому, когда этот код выполняется в файле сценария classA.php, вы получите /www/libs/classA/config.ini.

0

Вы должны иметь возможность включать/запрашивать файл из каталога текущего файла, если у вас нет информации о пути в аргументе, например. включают в себя ('file2.php') ;. Но я думаю, что даже если у вас есть. ./file2.php '), то он будет относиться к каталогу сценария с первым включением/исполнением.

Мне нравится метод dirname (____ FILE ____) ..., но я верю в случай, когда определенный набор файлов предназначен для развертывания всегда в одном каталоге, прямой файл включает в себя продвижение когезии.

Смежные вопросы