Foros del Web » Programando para Internet » PHP »

¿ Como saber URL carpeta raiz en local y en servidor ?

Estas en el tema de ¿ Como saber URL carpeta raiz en local y en servidor ? en el foro de PHP en Foros del Web. Hola a todos, Estoy realizando una web y tengo varios includes, etc... La cuestión es que necesito dirigir la url de algunos includes, por ejmplo, ...
  #1 (permalink)  
Antiguo 14/07/2010, 11:32
 
Fecha de Ingreso: octubre-2003
Ubicación: España
Mensajes: 1.067
Antigüedad: 20 años, 6 meses
Puntos: 18
¿ Como saber URL carpeta raiz en local y en servidor ?

Hola a todos,

Estoy realizando una web y tengo varios includes, etc...
La cuestión es que necesito dirigir la url de algunos includes, por ejmplo, ahora lo que hago es:

../includes/algo.php
De esta manera va a la carpeta anterior, entra en includes y activa algo.php

Pero me gustaría hacer lo siguiente:

CARPETA RAÍZ/includes/algo.php
Es decir, que empiece por la carpeta raíz y vaya subiendo por las diferentes carpetas (sea local o servidor)

¿ Como lo hago?

Saludos!!!!!
  #2 (permalink)  
Antiguo 14/07/2010, 11:34
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: ¿ Como saber URL carpeta raiz en local y en servidor ?

puedes usar __FILE__ para obtener el nombre del archivo actual, y luego con dirname() obtienes la ruta...

o bien, usar $_SERVER['DOCUMENT_ROOT']

también el ./ significa la raíz casi como getcwd()
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 15/07/2010, 02:36
 
Fecha de Ingreso: octubre-2003
Ubicación: España
Mensajes: 1.067
Antigüedad: 20 años, 6 meses
Puntos: 18
Respuesta: ¿ Como saber URL carpeta raiz en local y en servidor ?

gracias por tu respuesta, probaré a ver..

un saludo!
  #4 (permalink)  
Antiguo 23/07/2010, 20:19
 
Fecha de Ingreso: julio-2010
Mensajes: 28
Antigüedad: 13 años, 9 meses
Puntos: 2
Respuesta: ¿ Como saber URL carpeta raiz en local y en servidor ?

hola yo intento hacer algo parecido

usando

$_SERVER['DOCUMENT_ROOT']

la situacion es que uso la funcion "scandir" y en mi servidor local usandolo de esa forma funciona perfecto algo asi

scandir($_SERVER['DOCUMENT_ROOT] . "/");

esto me trae todos los archivos que estan en la raiz del servidor.

Pero cuando lo subo a un servidor en linea que estoy usando para pruebas no me funciona me devuelve error en la funcion scandir:

Código:

Warning: scandir() [function.scandir]: open_basedir restriction in effect. File(/usr/local/apache/htdocs) is not within the allowed path(s): (/home/:/usr/lib/php:/tmp) in /home/a7640195/public_html/path.php  on line 18
mientras que en mi servidor local funciona sin problemas, pero si hago esto:

scandir("./");

funciona sin problemas y me devuelve un array con todo el contenido de la carpeta raiz.

el problema es que esta solucion no me va ya que si tengo el script dentro de una carpeta me devuelve solo el contenido de su carpeta y yo necesito que sea el de la raiz.

cual puede ser el problema de que funcione en mi servidor y el que uso de pruebas en linea no?


/*EDITO*/

bueno por el momento ya pude resolver el problema aunque creo que no de una forma eficiente pero cumple con lo que necesito hice una funcion que devuelve la ruta raiz de forma relativa al script actual.

Código PHP:
function root_path(){
    
$this_directory dirname(__FILE__);
    
$archivos scandir($this_directory);
    
$atras "";
    
$cuenta 0;
    while (
true){
        foreach(
$archivos as $actual){
            if (
$actual == "root.path"){
                if (
$cuenta == 0)
                return 
"./";
                return 
$atras;
            }
        }
        
$cuenta++;
        
$atras $atras "../";
        
$archivos scandir($atras);
    }

para que funcione hay que crear un archivo llamado root.path en la raiz de nuestro servidor o la ruta que queramos que nos devuelva como root.

a si lo olvidaba, la funcion devuelve la ruta de forma "./" si el script se encuentra en la raiz, o "../../../" si esta dentro de otras carpetas.

Última edición por Mxrck; 23/07/2010 a las 22:21
  #5 (permalink)  
Antiguo 24/07/2010, 06:13
 
Fecha de Ingreso: octubre-2003
Ubicación: España
Mensajes: 1.067
Antigüedad: 20 años, 6 meses
Puntos: 18
Respuesta: ¿ Como saber URL carpeta raiz en local y en servidor ?

Interesante Mxrck,

Por lo visto $_SERVER['DOCUMENT_ROOT'] se usa solamente para linux, en entronos windows no existe y es allí donde está el problema (que alguien me corrija si me equivoco..)

Saludos!
  #6 (permalink)  
Antiguo 24/07/2010, 09:00
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: ¿ Como saber URL carpeta raiz en local y en servidor ?

Cita:
Iniciado por davidj Ver Mensaje
Interesante Mxrck,

Por lo visto $_SERVER['DOCUMENT_ROOT'] se usa solamente para linux, en entronos windows no existe y es allí donde está el problema (que alguien me corrija si me equivoco..)

Saludos!
hmmm... y porque no lo averiguas??
Código PHP:
echo $_SERVER['DOCUMENT_ROOT']; 
obvio, debes tener Windows... ;)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 24/07/2010, 09:30
 
Fecha de Ingreso: octubre-2003
Ubicación: España
Mensajes: 1.067
Antigüedad: 20 años, 6 meses
Puntos: 18
Respuesta: ¿ Como saber URL carpeta raiz en local y en servidor ?

Si, es decir, utilizo hostings linux y windows, en windows $_SERVER['DOCUMENT_ROOT'] es como si no existiera mientras que en linux funciona bien. Existen algunos tutos para conseguir que funcione en windows pero no me acaban de funcionar.
  #8 (permalink)  
Antiguo 24/07/2010, 14:46
 
Fecha de Ingreso: julio-2010
Mensajes: 28
Antigüedad: 13 años, 9 meses
Puntos: 2
Respuesta: ¿ Como saber URL carpeta raiz en local y en servidor ?

Cita:
Iniciado por davidj Ver Mensaje
Interesante Mxrck,

Por lo visto $_SERVER['DOCUMENT_ROOT'] se usa solamente para linux, en entronos windows no existe y es allí donde está el problema (que alguien me corrija si me equivoco..)

Saludos!
Bueno pues a eso me referia, el server local lo tengo bajo windows y me da las rutas del tipo c:/carpeta/carpeta.... y funciona bien el codigo.

sin embargo el servidor online que utilizo es linux y me da una ruta del tipo

/user/apache/httdocs/

pero si le hago scandir a /user/apache/httdocs/ me devuelve el error ya mencionado anteriormente.
  #9 (permalink)  
Antiguo 25/07/2010, 20:04
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: ¿ Como saber URL carpeta raiz en local y en servidor ?

Cita:
Iniciado por davidj Ver Mensaje
Interesante Mxrck,

Por lo visto $_SERVER['DOCUMENT_ROOT'] se usa solamente para linux, en entronos windows no existe y es allí donde está el problema (que alguien me corrija si me equivoco..)

Saludos!
yo tengo dos maquinas una con fedora y otra con w7 y las dos tienen esa variable. deveria de funcionar

verificalo con este codigo:

Código PHP:
Ver original
  1. <?php
  2.     echo("<pre>");
  3.     print_r($_SERVER);
  4.     echo("</pre>");
  5. ?>

Última edición por lair; 25/07/2010 a las 20:30
  #10 (permalink)  
Antiguo 29/07/2010, 10:40
 
Fecha de Ingreso: octubre-2003
Ubicación: España
Mensajes: 1.067
Antigüedad: 20 años, 6 meses
Puntos: 18
Respuesta: ¿ Como saber URL carpeta raiz en local y en servidor ?

Si bien, tengo que realizar una aclaración, $_SERVER['DOCUMENT_ROOT'] se utiliza en apache pero no en IIS (windows y linux da igual)

un saludo

Etiquetas: local, raiz, url, servidores, carpetas
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 05:02.