2012-08-13 29 views
13

sólo para confirmar, está utilizando:raíz de documento PHP

$_SERVER["DOCUMENT_ROOT"] 

lo mismo que usar:/

en HTML.

Por ejemplo. Si el documento actual es:

folder/folder/folder/index.php 

que podría utilizar (en HTML) para iniciar en el roort:

/somedoc.html 

y para hacer lo mismo en PHP que tendría que utilizar:

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

¿Es correcto? ¿Hay alguna manera más fácil de hacerlo?

Respuesta

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

Pruebe esto usted mismo y descubra que no son exactamente iguales.

$ _SERVER [ 'DOCUMENT_ROOT'] rinde una ruta de archivo real (en mi equipo en funcionamiento, ya que es el servidor propio, c:/wamp/www/

HTML/hace que la raíz de la URL del servidor, en mi caso , localhost/

Pero c:. /wamp/www/hello.html y localhost/hello.html son de hecho el mismo archivo

+1

si desea usarlo, digamos que para incluir(), es un problema diferente que para un hipervínculo anterior. –

+0

No hay razón para publicar mi respuesta ya que este es lo que iba a decir. –

+0

¿Qué es diferente con includes? – Andrew

5

Sólo / se refiere a la raíz del sitio web de la carpeta html pública DOCUMENT_ROOT se refiere a la ruta local a la carpeta en el servidor que contiene su sitio web.

Por ejemplo, he fijado EasyPHP en una máquina ...

$_SERVER["DOCUMENT_ROOT"] me da file:///C:/Program%20Files%20(x86)/EasyPHP-5.3.9/www pero cualquier archivo enlazo a / con sólo habrá relativa 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 /.

-2

La manera más fácil de hacerlo es tener una buena estructura de sitio y escribirla como una constante.

DEFINE("BACK_ROOT","/var/www/"); 
+1

Sé que es anterior, pero me di cuenta de esto, ¿por qué crearía más constantes si ya tiene una constante de servidor definida php haciendo esto, desperdicio de código, CPU y memoria – DarkMukke

+0

La idea es que no importa cuán profundo (en lo que respecta a las carpetas) se encuentre, esto hace que nunca tenga que escribir código relativo al script, que no sea el código utilizado para definir la raíz. Uso esto para combatir el método Jerry-rigging usado por muchos programadores hoy. –

+5

sí, pero de esa manera su script se vuelve dependiente del sistema o de la ubicación, que nunca debería ser, las aplicaciones deberían ser portátiles – DarkMukke

Cuestiones relacionadas