php - script_filename - server_addr
Document Root PHP (4)
Sólo para confirmar, está usando:
$_SERVER["DOCUMENT_ROOT"]
lo mismo que usar: /
en HTML.
P.ej. Si el documento actual es:
folder/folder/folder/index.php
Podría usar (en HTML) para comenzar en el roort:
/somedoc.html
Y para hacer lo mismo en PHP tendría que usar:
$_SERVER["DOCUMENT_ROOT"] . "/somedoc.html";
¿Es eso correcto? ¿Hay una manera más fácil de hacerlo?
La forma más fácil de hacerlo es tener una buena estructura del sitio y escribirla como una constante.
DEFINE("BACK_ROOT","/var/www/");
Solo /
refiere a la raíz de su sitio web desde la carpeta html pública. DOCUMENT_ROOT
refiere a la ruta local a la carpeta en el servidor que contiene su sitio web.
Por ejemplo, tengo la configuración de EasyPHP en una máquina ...
$_SERVER["DOCUMENT_ROOT"]
me da el file:///C:/Program%20Files%20(x86)/EasyPHP-5.3.9/www
pero cualquier archivo al que enlace con solo /
será relativo a mi carpeta www
.
Si desea dar la ruta absoluta a un archivo en su servidor (desde la raíz del servidor) puede usar DOCUMENT_ROOT
. si desea dar la ruta absoluta a un archivo desde la raíz de su sitio web, use solo /
.
Sí , en el lado del servidor $_SERVER[''DOCUMENT_ROOT'']
es equivalente a /
en el lado del cliente.
Por ejemplo: el valor de "{$_SERVER[''DOCUMENT_ROOT'']}/images/thumbnail.png"
será la cadena /var/www/html/images/thumbnail.png
en un servidor donde el archivo local en esa ruta puede ser alcanzado desde el lado del cliente en la url http://example.com/images/thumbnail.png
No , en otras palabras, el valor de $_SERVER[''DOCUMENT_ROOT'']
no es /
más bien es la ruta local del servidor a lo que el servidor muestra al cliente en example.com/
nota: $_SERVER[''DOCUMENT_ROOT'']
no incluye un final /
<a href="<?php echo $_SERVER[''DOCUMENT_ROOT''].''/hello.html''; ?>">go with php</a>
<br />
<a href="/hello.html">go to with html</a>
Inténtalo tú mismo y descubre que no son exactamente iguales.
$ _SERVER [''DOCUMENT_ROOT''] muestra una RUTA DE ARCHIVOS real (en mi computadora funcionando como su propio servidor, c: / wamp / www /
HTML / representa la raíz del servidor url, en mi caso, localhost /
Pero c: /wamp/www/hello.html y localhost / hello.html son de hecho el mismo archivo