ayuda navegador archivos php

pepo
03 de Mayo del 2008
Hola, a ver si pueden ayudarme, estoy modificando un navegador de archivos y le he puesto la funcionalidad de subir nivel y volver a inicio, pero con la funcionalidad de retroceder y avanzar no consigo que funcione, a ver si alguien puede mirarme como implantarlo, o corregirme un poco el codigo para que funcione, muchas gracias de antemano.


";
if(!file_exists($default_dir)) //verificamos que existe el directorio
{
echo "Error... El directorio no existe. Configura bien tu variable "default_dir" ...";
}
else
{
//TRAMO DE VALIDACION
if($_GET['dir']=='') //valor pasado por la URL, si esta vació, asignamos el directorio por default
{
$dir=$default_dir;
}
else
{
if(!file_exists($_GET['dir'])) //si nos pasaron un valor checamos si existe, si no existe ponemos el default
{
$dir=$default_dir;
}
else
{
$dir=$_GET['dir']; //si existe, lo asignamos...
}
}
$dp=opendir($dir); //abrimos el directorio
while($file=readdir($dp)) //hacemos un ciclo para guardar los nombres de los directorios y archivos que se tienen en el directorio actual
{
$filenames[]=$file;
}
sort($filenames); //ordenamos los directorios alfabéticamente
for($i=0;$i$dir/"; //en modificacion
//echo "$file/"; //en modificacion

//cuando checamos que la variable dir no es el default pero recordamos que php manda el ./ lo vamos a omitir, por lo que con el continue regresamos al ciclo del for
if(is_dir("$dir/$file")&&$file==".")


continue;
$prueba = $dir;
$prueba2 = $current_dir;
$prueba3 = $parent_dir;
$mover = 0;

if(is_dir("$dir/$file")) //checamos si es un directorio, si lo es, tenemos dos casos que sea el ../ que sería para bajar un nivel o es un directorio fisico
{
if($file=="..") // si son ../ regresamos un nivel
{
$current_dir=basename($dir);
$parent_dir=ereg_replace("/$current_dir$","",$dir);

//echo "$dir"; //mostrar ruta directorio actual

//echo "$default_dir/"; //
//echo "$dir/";
//echo "$parent_dir/"; //en modificacion

// echo $dir;
$cadena = strlen($dir);
// echo $cadena;
//$x=0;
$separador = "";

$n = 0;
while ($n<=$cadena):
//print $n;
if(substr($dir, $n, 1)=="/")
{
// echo $cadena;
// echo "hola";
$separador = substr($dir, 0, $n);

echo "".substr($separador, strrpos($separador, "/"))."";
}
$n++;

endwhile;




// echo "$dir/"; // en modificacion
//echo "$file/"; //
// echo "$file/"; // volver a carpeta raiz
echo " n";
echo "$file/Inicio"; //ir inicio


//echo "$file/"; //
//echo "$dir/";
//$atras = "Atras";

// echo "$file/"; //

if ($dir!=$default_dir){
$matriz = explode("/", $dir);
// $matriz[$mover] = $prueba;
// $mover+1;
}
foreach ($matriz as $key => $value) {
if ($key> 0) $matriz[$key] = $matriz[$key - 1]."/".$matriz[$key];
if ($matriz[$key] == $dir) $posicion = $key;
}
// echo $posicion; mostrar posicion

echo "$Atras/Subir "; //ir atras

// $total = $dir;
//echo $total; echo = $dir
//$print_r($matriz


// print_r($matriz);
//echo $matriz;



//**********pruebas
// global $mover; //declarar funcion global
// global $prueba;
// echo $prueba;

// if ($dir !=$default_dir){
// $matriz[$mover] = $prueba;
// print_r($matriz);
// $mover+1;
// }

// echo "/Atras ";


// ********* fin pruebas





$adelante = $parent_dir."/".$current_dir;

//adelante
echo "/Adelante "; //ir adelante
// echo "$file/Inicio";
//}
}
else //de lo contrario mostramos el nombre del directorio y agregamos su url
{
echo "$file/";
}
}
else //si no es un directorio, es un archivo, lo mostramos con su url
{
echo "$file ";
}
} // llavel del for
} //llave del else
?>