Что такое переменная PHP $ _SERVER для каталога выше DOCUMENT_ROOT? - PullRequest
4 голосов
/ 24 ноября 2011

У меня есть сервер, на котором находится общедоступный корень: /var/www/example.com/html/.

Использование $_SERVER['DOCUMENT_ROOT']); Я получаю следующий результат:

/var/www/example.com/html/

Что $_SERVER ключ массивая бы использовал, чтобы получить путь прямо над публичным корнем?То есть здесь:

/var/www/example.com/

Это должно работать в нескольких средах, таких как локальная и живая.Не уверен, что есть какой-то способ сделать ./ document_root.

Ответы [ 2 ]

9 голосов
/ 24 ноября 2011

dirname() возвращает родительский каталог каталога и не зависит от платформы.

dirname($_SERVER['DOCUMENT_ROOT']);

Должен вернуться:

/var/www/example.com

Если вам нужен косая черта, вы можете добавить DIRECTORY_SEPARATOR:

dirname($_SERVER['DOCUMENT_ROOT']) . DIRECTORY_SEPARATOR;
0 голосов
/ 24 ноября 2011

.. / - это unixey способ сказать папку выше, поэтому, например, в терминале это одно и то же: / home / user / /home/user/heavymark/../

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...