Foros del Web » Programando para Internet » PHP »

Inclusión de un Directorio Absoluto

Estas en el tema de Inclusión de un Directorio Absoluto en el foro de PHP en Foros del Web. Buenas a todos gente de ForosdelWeb =) Tengo un problema con la inclusión en PHP. Tengo un sitio de muchas carpetas, muchos niveles, y en ...
  #1 (permalink)  
Antiguo 11/01/2009, 19:24
 
Fecha de Ingreso: marzo-2008
Mensajes: 73
Antigüedad: 16 años
Puntos: 0
Inclusión de un Directorio Absoluto

Buenas a todos gente de ForosdelWeb =)

Tengo un problema con la inclusión en PHP. Tengo un sitio de muchas carpetas, muchos niveles, y en la raíz, tengo un archivo con mis funciones y mis clases personalizadas. Quiero, en cualquier parte de mi sitio, incluir en determinados momentos esos archivos, sin usar ninguna directiva ni nada porque se que es posible hacerlo (a lo Wordpress, se que es grandeliga, pero bueno, se puede (: )

Si tengo un sitio:

raiz
raiz/funciones.php

raiz/carpeta1
raiz/carpeta2

raiz/carpeta1/carpetasub1/sub1/subsub1
raiz/carpeta2/carpetasub1


Y suponiendo, un archivo en cada carpeta, como puedo hacer para que en cada archivo yo manualmente pueda hacer una inclusion absoluta a funciones.php sin tener que usar el método HTML de "../../" dependiendo de donde este?

Nota: Me medio funcionó el método $_SERVER['DOCUMENT_ROOT] pero tengo entendido que es inseguro hace run require/include con una variable, pero no es infalible, y mucho menos si no es precisamente en el directorio raíz del sitio.

Gracias, espero me puedan guiar.
  #2 (permalink)  
Antiguo 11/01/2009, 20:29
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Inclusión de un Directorio Absoluto

pues eso.... usa la ruta completa, no mas

Código PHP:
define('BUZZ''/usr/www/foo/bar');

require 
BUZZ '/candy.inc.php';
require 
BUZZ '/includes/chop.php'
la verdad, no le veo inconveniente... ¿a tu problema??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 12/01/2009, 04:37
 
Fecha de Ingreso: marzo-2008
Mensajes: 73
Antigüedad: 16 años
Puntos: 0
Respuesta: Inclusión de un Directorio Absoluto

Cita:
Iniciado por pateketrueke Ver Mensaje
pues eso.... usa la ruta completa, no mas

Código PHP:
define('BUZZ''/usr/www/foo/bar');

require 
BUZZ '/candy.inc.php';
require 
BUZZ '/includes/chop.php'
la verdad, no le veo inconveniente... ¿a tu problema??
Eso trabaja diferente cuando lo pruebo en local y en un servidor web. Y esa misma definición tendría que hacerla en cada documento, y existe una manera de que eso sea global, pero no se/no entiendo como.

¿Me entiendes? o_O
  #4 (permalink)  
Antiguo 12/01/2009, 08:35
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Inclusión de un Directorio Absoluto

claro....

pero depende mucho, si usas Windows para local???

y el servidor es *nix pues es obvio, que no es igual !!!


demás.... no hay una manera de hacerlo global, o bien... si, pero no tienes la técnica ya desarrollada, o si??


osea... necesitas que tu script de alto nivel (index, supongo) que esta a la misma altura de tu raíz web defina una constante BASE_DIR con el dirname() del mismo script... __FILE__

y a partir de aquí, haces los includes de lo que quieras... usando BASE_DIR como ruta inicial.... es nunca falla, y trabaja tanto en *nix como Windows


el problema, es que si ejecutas scripts independientes, necesitas un script de configuración....

y haces la comparación:

Código PHP:
define('WIN_DIR''C:\\AppServ\\htdocs'); // Windows??
define('NIX_DIR''/etc/www');

define('BASE_DIR'substr(PHP_OS03) === 'WIN'WIN_DIRNIX_DIR); 
con solo esta constante definida bastaría, tan solo debes configurar la y emplearla con razón....
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
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 02:30.