Foros del Web » Programando para Internet » PHP »

Como Usar Ruta Relativa o Absoluta de Includes???

Estas en el tema de Como Usar Ruta Relativa o Absoluta de Includes??? en el foro de PHP en Foros del Web. Estimados amigos tengo una consulta, pero antes dejo este grafico: index.php (raiz) | | |--Conections/conexion001.php, closeconexion.php, etc... | |---Envios /index.php, stok.php, etc... | |---Pedidos/2006/resumen/index.php, etc.... ...
  #1 (permalink)  
Antiguo 21/10/2006, 13:29
 
Fecha de Ingreso: marzo-2003
Ubicación: Av. Grau 1190
Mensajes: 122
Antigüedad: 21 años, 1 mes
Puntos: 3
Exclamación Como Usar Ruta Relativa o Absoluta de Includes???

Estimados amigos tengo una consulta, pero antes dejo este grafico:

index.php (raiz)
|
|
|--Conections/conexion001.php, closeconexion.php, etc...
|
|---Envios /index.php, stok.php, etc...
|
|---Pedidos/2006/resumen/index.php, etc....
|
|--- ETC, ETC...

Tengo una aplicacion en un directorio "envios/stok.php", en el cual se hace varias consultas y se ejecutan varios script para lo hago un include de un archivo de otro directorio "Conections" de la forma:

stok.php
-----------
<? script ... ?> (varios)

<?
include "../Conections/conexion001.php";
bla bla bla
include "../Conections/closeconexion.php";
?>

En la pagina envios/index.php hago un include de la forma:
-------
<? include "../envios/stok.php"; ?>
hasta aqui todo bien.


El problema se da cuando en el index.php de la raiz (pag. principal) intento hacer:
<? include "envios/stok.php"; ?>
Pues me da error!! por que en stok.php tambien hice un include (include "../Conections/conexion001.php";) que en el index principal ya no lo reconoce... es decir no encuentra la Ruta


Tambien se da este caso cuando intento llamar a stok.php en el index.php de una subcarpeta "pedidos/2006/resumen/index.php"


El problema es la ruta relativa que al hacer include hereda la ruta de la pagina actual.

Bueno hize un codigo que me ayudaba a resoverlo pero note que se ponia un poco lenta la pagina. Aqui el Codigo:

<?
$web = explode("/",$_SERVER["SCRIPT_NAME"]); // ruta en la q se encuentra la pagina
$num_web = count($web)-2;
if ($num_web == 0 ) {$arbol = "";}
if ($num_web == 1 ) {$arbol = "../";}
if ($num_web == 2 ) {$arbol = "../../";}
if ($num_web == 3 ) {$arbol = "../../../";}
if ($num_web == 4 ) {$arbol = "../../../../";}

include $arbol."Conections/conexion001.php";
//include $arbol."Conections/closeconexion.php";

De esta manera podria llamar desde cualquier subdirectorio;
?>
Bueno esta fue una solucion q encontre pero como dije parece hacerce lento.


Espero q m hayan entendido y me puedan ayudar, esoty seguro q existe otra solucion menos tediosa.

Gracias.

Última edición por elsabio; 21/10/2006 a las 13:31 Razón: error ortagrafico
  #2 (permalink)  
Antiguo 28/10/2006, 14:04
 
Fecha de Ingreso: marzo-2003
Ubicación: Av. Grau 1190
Mensajes: 122
Antigüedad: 21 años, 1 mes
Puntos: 3
Nadie me puede ayudar????
  #3 (permalink)  
Antiguo 29/10/2006, 18:08
 
Fecha de Ingreso: febrero-2002
Ubicación: Chile
Mensajes: 1.573
Antigüedad: 22 años, 2 meses
Puntos: 2
include_once();

utiliza eso, en caso de q el programa ya haya sido incluido no lo incluira y asi no te dara error.

respecto a la otra pregunta no entendi.
  #4 (permalink)  
Antiguo 29/10/2006, 19:56
 
Fecha de Ingreso: mayo-2004
Ubicación: Argentina
Mensajes: 126
Antigüedad: 20 años
Puntos: 1
Hola! a mi parecer deberías usar rutas ABSOLUTAS... defini en un archivo:

$root="http://www.tusitio.com/";
$envios=$root."Envios/";

entonces cuando haces un include pones:

<? include($envios."index.php"); // http://www.tusitio.com/Envios/index.php ?>
<? include($envios."stock.php"); ?>

Segun el caso cambias la variable a usar, solo ojo con las barras.
Busca alguna funcion para que $root tenga el valor del Path o la URL del root de tu Servidor. (www o html, por ej.)

Saludos!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:26.