Просто для подтверждения, использует:
$_SERVER["DOCUMENT_ROOT"]
так же, как использование: /
в HTML.
Например. Если текущий документ:
folder/folder/folder/index.php
Я мог бы использовать (в HTML) для запуска в роторе:
/somedoc.html
и делать то же самое в PHP, мне пришлось бы использовать:
$_SERVER["DOCUMENT_ROOT"] . "/somedoc.html";
Это верно? Есть ли более простой способ сделать это?
<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 являются фактически одним и тем же файлом
Просто /
относится к корню вашего сайта из общедоступной html-папки. DOCUMENT_ROOT
относится к локальному пути к папке на сервере, которая содержит ваш сайт.
Например, у меня есть установка EasyPHP на машине …
$_SERVER["DOCUMENT_ROOT"]
дает мне file:///C:/Program%20Files%20(x86)/EasyPHP-5.3.9/www
но любой файл, с которым я file:///C:/Program%20Files%20(x86)/EasyPHP-5.3.9/www
просто /
будет относиться к моей папке www
.
Если вы хотите указать абсолютный путь к файлу на своем сервере (от корня сервера), вы можете использовать DOCUMENT_ROOT
. если вы хотите дать абсолютный путь к файлу из корня вашего веб-сайта, используйте только /
.
Самый простой способ сделать это – иметь хорошую структуру сайта и записать его как константу.
DEFINE("BACK_ROOT","/var/www/");