Документ Root PHP
Просто для подтверждения, используется:
$_SERVER["DOCUMENT_ROOT"]
то же самое, что и при использовании:/
в HTML.
Eg. Если текущий документ:
folder/folder/folder/index.php
Я мог бы использовать (в HTML) для запуска в роторе:
/somedoc.html
и сделать то же самое в PHP, мне пришлось бы использовать:
$_SERVER["DOCUMENT_ROOT"] . "/somedoc.html";
Это правильно? Есть ли более простой способ сделать это?
Ответы
Ответ 1
<a href="<?php echo $_SERVER['DOCUMENT_ROOT'].'hello.html'; ?>">go with php</a>
<br />
<a href="/hello.html">go to with html</a>
Попробуйте сами и обнаружите, что они не совсем то же самое.
$_ SERVER ['DOCUMENT_ROOT'] отображает фактический файл PATH (на моем компьютере, работающем как собственный сервер, c:/wamp/www/
HTML/отображает корень URL-адреса сервера, в моем случае, localhost/
Но c:/wamp/www/hello.html и localhost/hello.html являются фактически одним и тем же файлом
Ответ 2
Просто /
относится к корню вашего сайта из общедоступной html-папки. DOCUMENT_ROOT
относится к локальному пути к папке на сервере, содержащей ваш сайт.
Например, у меня есть установка EasyPHP на машине...
$_SERVER["DOCUMENT_ROOT"]
дает мне file:///C:/Program%20Files%20(x86)/EasyPHP-5.3.9/www
, но любой файл, с которым я ссылаюсь только с /
, будет относиться к моей папке www
.
Если вы хотите указать абсолютный путь к файлу на своем сервере (от корневого сервера), вы можете использовать DOCUMENT_ROOT
. если вы хотите дать абсолютный путь к файлу из корня вашего сайта, используйте только /
.
Ответ 3
Самый простой способ сделать это - иметь хорошую структуру сайта и записать его как константу.
DEFINE("BACK_ROOT","/var/www/");