Gewoon om te bevestigen, gebruikt:
$_SERVER["DOCUMENT_ROOT"]
hetzelfde als het gebruik van: /
in HTML.
Bijv. Als het huidige document is:
folder/folder/folder/index.php
Ik zou (in HTML) kunnen gebruiken om bij de wortel te beginnen:
/somedoc.html
en om hetzelfde te doen in PHP zou ik het volgende moeten gebruiken:
$_SERVER["DOCUMENT_ROOT"] . "/somedoc.html";
Is dat juist? Is er een eenvoudigere manier om dit te doen?
Antwoord 1, autoriteit 100%
<a href="<?php echo $_SERVER['DOCUMENT_ROOT'].'/hello.html'; ?>">go with php</a>
<br />
<a href="/hello.html">go to with html</a>
Probeer dit zelf en ontdek dat ze niet precies hetzelfde zijn.
$_SERVER['DOCUMENT_ROOT']
geeft een echt bestandspad weer (op mijn computer die draait als zijn eigen server, C:/wamp/www/
HTML’s /
geeft de root van de server-url weer, in mijn geval localhost/
Maar C:/wamp/www/hello.html
en localhost/hello.html
zijn in feite hetzelfde bestand
Antwoord 2, autoriteit 12%
Alleen /
verwijst naar de hoofdmap van uw website uit de openbare html-map. DOCUMENT_ROOT
verwijst naar het lokale pad naar de map op de server die uw website bevat.
Ik heb bijvoorbeeld EasyPHP-configuratie op een machine…
$_SERVER["DOCUMENT_ROOT"]
geeft me file:///C:/Program%20Files%20(x86)/EasyPHP-5.3.9/www
maar elk bestand waarnaar ik link met alleen /
zal relatief zijn ten opzichte van mijn www
-map.
Als je het absolute pad naar een bestand op je server wilt geven (van de root van de server), kun je DOCUMENT_ROOT
gebruiken. als je het absolute pad naar een bestand van de root van je website wilt geven, gebruik dan gewoon /
.
Antwoord 3, autoriteit 2%
Ja, $_SERVER['DOCUMENT_ROOT']
bevat het pad aan de serverzijdedat overeenkomt met het URL-pad aan de clientzijde/
. Maar Neeze zijn niet uitwisselbaar.
Ze zijn niet onderling uitwisselbaar, omdat het pad aan de serverzijde bijvoorbeeld nooit naar de clientzijde (HTML) mag worden verzonden. De waarde van $_SERVER['DOCUMENT_ROOT']
is niet /
; het is het lokale bestandspadvan de server naar wat de server de client laat zien op /
. Dus de waarde van ${$_SERVER['DOCUMENT_ROOT']}/images/thumbnail.png"
kan de tekenreeks zijn /var/www/html/images/thumbnail.png
op een server waar het lokale bestand op dat pad is, kan worden bereikt vanaf de clientzijde op de url http://example.com/images/thumbnail.png
opmerking: $_SERVER['DOCUMENT_ROOT']
bevat geen afsluitende /
Antwoord 4
De eenvoudigste manier om dit te doen, is door een goede sitestructuur te hebben en deze als een constante te schrijven.
DEFINE("BACK_ROOT","/var/www/");