web-dev-qa-db-fra.com

Racine du document PHP

Juste pour confirmer, utilise:

$_SERVER["DOCUMENT_ROOT"]

la même chose que d'utiliser: /

en HTML.

Par exemple. Si le document actuel est:

folder/folder/folder/index.php

Je pourrais utiliser (en HTML) pour commencer sur le roort:

/somedoc.html

et pour faire la même chose dans PHP, je devrais utiliser:

$_SERVER["DOCUMENT_ROOT"] . "/somedoc.html";

Est-ce exact? Y a-t-il un moyen plus facile de le faire?

21
Andrew
 <a href="<?php echo $_SERVER['DOCUMENT_ROOT'].'/hello.html'; ?>">go with php</a>
<br />
<a href="/hello.html">go to with html</a>

Essayez ceci vous-même et constatez qu'ils ne sont pas exactement les mêmes.

$ _SERVER ['DOCUMENT_ROOT'] restitue un chemin de fichier réel

HTML's/rend la racine de l'URL du serveur, dans mon cas, localhost /

Mais c: /wamp/www/hello.html et localhost/hello.html sont en fait le même fichier

28
khaverim

Juste / fait référence à la racine de votre site Web à partir du dossier HTML public. DOCUMENT_ROOT fait référence au chemin d'accès local au dossier sur le serveur qui contient votre site Web.

Par exemple, j'ai la configuration EasyPHP sur une machine ...

$_SERVER["DOCUMENT_ROOT"] me donne file:///C:/Program%20Files%20(x86)/EasyPHP-5.3.9/www mais tout fichier vers lequel je lierai avec seulement / sera relatif à mon dossier www.

Si vous voulez donner le chemin absolu à un fichier sur votre serveur (à partir de la racine du serveur), vous pouvez utiliser DOCUMENT_ROOT. si vous voulez donner le chemin absolu à un fichier à partir de la racine de votre site Web, utilisez simplement /.

5
sachleen

Oui , côté serveur $_SERVER['DOCUMENT_ROOT'] est équivalent à / côté client.

Par exemple: la valeur de "{$_SERVER['DOCUMENT_ROOT']}/images/thumbnail.png" sera la chaîne /var/www/html/images/thumbnail.png sur un serveur où le fichier local de ce chemin peut être atteint du côté client à l'url http://example.com/images/thumbnail.png

Non , en d'autres termes, la valeur de $_SERVER['DOCUMENT_ROOT'] n'est pas / mais le chemin d'accès local du serveur à ce que le serveur affiche au client à example.com/

remarque: $_SERVER['DOCUMENT_ROOT'] n'inclut pas un / final

0
timeSmith