Ver Mensaje Individual
  #2 (permalink)  
Antiguo 15/12/2011, 18:44
Avatar de leo_
leo_
 
Fecha de Ingreso: abril-2008
Mensajes: 40
Antigüedad: 16 años, 7 meses
Puntos: 11
Sonrisa Respuesta: problema con rutas entre archivos php

Hola suponiendo q tengas un directorio como este:
Código :
Ver original
  1. |-> imagenes
  2. |         |->imagen1.jpg
  3. |         |->imagen2.jpg
  4. |-> css
  5. |    |-> estilo.css
  6. |-> includes
  7. |       |-> constantes.php
  8. |-> libs
  9. |       |-> class.php
  10. |-> misc
  11. |    |-> misc.php
  12. |-> index.php
  13. |-> home.php
Suponiendo que en includes/constantes.php tengas algo como:
Código PHP:
<?php
$imagen1 
"imagenes/imagen1.jpg";
$imagen2 "imagenes/imagen2.jpg";
$css "css/estilo.css";
Entonces si en index.php haces
Código PHP:
require_once('includes/constantes.php');
...
...
echo 
"<img src=\"$imagen1\" alt=\"imagen1\">"
Y la salida de eso seria:
Código HTML:
...
<img src="imagenes/imagen1.jpg" alt="imagen1">
...
Funciona porque el navegador va a interpretar "http://www.ejemplo.com/imagenes/imagen1.jpg"
Lo mismo sería en el caso de home.php. En cambio si en misc.php pones
Código PHP:
require_once('includes/constantes.php'); 
No va a funcionar porque php va a buscar "misc/includes/constantes.php" que no existe. La forma correcta seria:
Código PHP:
require_once('/../includes/constantes.php'); 
Ahora bien cuando quieras usar las variables
Código PHP:
echo "<img src=\"$imagen2\" alt=\"imagen2\">"
La salida seria la misma que en el caso anterior
Código HTML:
<img src="imagenes\imagen2.jpg" alt="imagen2"> 
Pero ahora no va a funcionar porque el navegador va a interpretar "http://www.ejemplo.com/misc/imagenes/imagen2.jpg" que no existe y no va a mostrar nada. Una posible solución para esto es modificar constantes.php asi
Código PHP:
<?php 
...
$pre "http://".$_SERVER['SERVER_NAME'];
$imagen1 "$pre/imagenes/imagen1.jpg";
...
Bueno eso en el caso de las imagenes o las hojas de estilo en el caso de que lo utilices para incluir otros archivos php podrias considerar usar en constantes.php algo como
Código PHP:
$pre $_SERVER['DOCUMENT_ROOT'];
$include "$pre/libs/class.php" 
Y eso es todo espero haber sido de ayuda. Saludos.