Ver Mensaje Individual
  #4 (permalink)  
Antiguo 23/07/2010, 20:19
Mxrck
 
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