Document Root PHP

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.htmlen localhost/hello.htmlzijn in feite hetzelfde bestand


Antwoord 2, autoriteit 12%

Alleen /verwijst naar de hoofdmap van uw website uit de openbare html-map. DOCUMENT_ROOTverwijst 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/wwwmaar 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_ROOTgebruiken. 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.pngop 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/");

Other episodes