ayuda navegador archivos php
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
?>
";
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
?>
