Поиск имени каталога в другом каталоге с помощью PHP

У меня есть файл с именем load.php рядом с index.php в корневой папке. Так что у меня есть только два файла в корне. Мне нравятся четкие работы, как и большинству.

Сегодня мне нужно было определить каталоги в одном файле с именем define.php. Но его нет в корне, я добавил его в папку настроек в корневой папке.

Итак, мои файлы:

  • index.php (требуется load.php)
  • load.php (требуется settings/define.php)
  • настройки (включает в себя define.php)

Теперь я не знаю, как получить имя корневой папки?

__DIR__ в define.php дает мне папку .../home/settings, но я хочу получить root или другое имя папки. Итак, каков путь?


person Benjamin    schedule 06.09.2011    source источник
comment
Вы имеете в виду, что хотите узнать корневой каталог изнутри settings/define.php?   -  person Jon    schedule 07.09.2011
comment
Что вы действительно пытаетесь сделать? Если вы пытаетесь получить доступ к файлу в корневом каталоге, оператор .. должен выполнить эту работу.   -  person Chriszuma    schedule 07.09.2011
comment
Да, я имею в виду поиск имени корневого каталога из settings/define.php   -  person Benjamin    schedule 07.09.2011


Ответы (1)


Чтобы узнать «корневой» каталог изнутри settings/define.php, этого должно быть достаточно:

$root = realpath(__DIR__.DIRECTORY_SEPARATOR.'..');

Посмотрите в действии.

Примечание: в связанном примере используется dirname(__FILE__) вместо __DIR__, потому что последний доступен только в PHP >= 5.3, но функционально эквивалентен.

person Jon    schedule 06.09.2011
comment
Вы также можете dirname(__DIR__) подняться на один уровень вверх, если вы используете это внутри /sub/file.php и хотите получить корневой уровень. - person Xeoncross; 07.09.2011
comment
Спасибо за это. Но это находит только папку. Что делать, если я хочу найти «корневой каталог» в другом файле. (файл расположен в другой папке/другой папке...) - person Benjamin; 07.09.2011
comment
Я имею в виду, есть ли какая-либо функция для поиска «имени/пути корневого каталога» в любой папке. - person Benjamin; 07.09.2011
comment
@Benjamin: Это невозможно сделать за один шаг. Вы можете сделать это, выполнив поиск определенного файла, но лучше иметь параметр конфигурации в каком-либо файле, в котором хранится корневой каталог. Практически все PHP-приложения делают это таким образом. - person Jon; 07.09.2011