Получить Root Directory Path для PHP-проекта

У меня есть эта структура папок в моем проекте PHP. (это показано в затмениях)

-MySystem +Code +Data_Access -Public_HTML +css +js +Templates -resources 

Когда я пробую этот код

 echo $_SERVER['DOCUMENT_ROOT'] 

выход

D: / рабочее пространство

Как я могу получить путь к RootDirectory системы ( MySystem ), без MySystem имени папки?

Для PHP> = 5.3.0 попробуйте

Магические константы PHP.

 __DIR__ 

И сделайте свой путь относительно.

Для PHP <5.3.0 попробуйте

 dirname(__FILE__) 

Когда вы говорите, что

 $_SERVER['DOCUMENT_ROOT'] 

содержит этот путь:

 D:/workspace 

Тогда D: это то, что вы ищете, не так ли? В этом случае вы можете взорвать строку с помощью косой черты и вернуть первый:

 $pathInPieces = explode('/', $_SERVER['DOCUMENT_ROOT']); echo $pathInPieces[0]; 

Это выведет корневой каталог сервера.

Обновление. Когда вы используете константу DIRECTORY_SEPARATOR вместо жестко скопированной косой черты ( '/' ), этот код также работает под Windows.

Обновление 2: глобальная переменная $_SERVER не всегда доступна. Например, в командной строке (cli). Поэтому вы должны использовать __DIR__ вместо $_SERVER['DOCUMENT_ROOT'] . __DIR__ возвращает путь к самому файлу php.

используйте функцию PHP:

getcwd()

Возвращает текущий рабочий каталог.

вы можете попробовать: $ _SERVER ['PATH_TRANSLATED']

цитата:

Путь файловой системы (не основанный на документе root-) к текущему скрипту после того, как сервер выполнил какое-либо сопоставление виртуальной реальности. Примечание. Начиная с PHP 4.3.2, PATH_TRANSLATED больше не устанавливается неявно под Apache 2 SAPI, в отличие от ситуации в Apache 1, где оно установлено на то же значение, что и переменная сервера SCRIPT_FILENAME, когда она не заполняется Apache. Это изменение было сделано для соответствия спецификации CGI, что PATH_TRANSLATED должен существовать только в случае определения PATH_INFO. Пользователи Apache 2 могут использовать AcceptPathInfo = Внутри httpd.conf для определения PATH_INFO.

источник: php.net/manual

Я хочу указать, как WordPress справляется с этим:

 define( 'ABSPATH', dirname(dirname(__FILE__)) . '/' ); 

Поскольку WordPress очень сильно используется во всем Интернете, а также отлично работает локально, я очень доверяю этому методу.

 echo $pathInPieces = explode(DIRECTORY_SEPARATOR , __FILE__); echo $pathInPieces[0].DIRECTORY_SEPARATOR;