Explorador de Archivos en PHP
Este es un script que nos permite visualizar en un navegador web el contenido de un directorio. A continuación se muestra el contenido del script y algunas lÃÂneas con comentarios para poder entederlo.
Para empezar podemos crear un archivo que se llama explorador.php y pegamos todo este script: (lo detallo a continuación)
$default_dir=”C:”; //indicamos el directorio donde inicia el explorador
echo “EXPLORADOR DE ARCHIVOS<br>”;
if(!file_exists($default_dir)) //verificamos que existe el directorio
{
echo “<br>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<count($filenames);$i++) //hacemos un ciclo para ir mostrando el contenido del directorio
{
$file=$filenames[$i];
//checamos si la variable dir es igual al directorio por defecto y ademas PHP al abrir un directorio pone los puntos (./ y ../ que sirve para ir al directorio raÃÂz o uno mas abajo) pero como comparamos que la variable dir sea igual al default entonces no hay ni directorio raÃÂs (porque no encontramos en él) ni subdirectorios entonces mandamos continue que se regresarÃÂa al ciclo del for
if($dir==$default_dir && ($file==”.”||$file==”..”))
continue;
//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;
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 “<a href=\”$_SELF?dir=$parent_dir\”>$file/</a><br>”;
}
else //de lo contrario mostramos el nombre del directorio y agregamos su url
{
echo “<a href=\”$_SELF?dir=$dir/$file\”>$file/</a><br>”;
}
}
else //si no es un directorio, es un archivo, lo mostramos con su url
{
echo “<a href=\”./$dir/$file\”>$file </a><br>”;
}
} // llavel del for
} //llave del else
?>
Como pueden ver esta muy sencillo, además este script esta muy básico; se le pueden agregar validaciones (impedir que se entren a dichos directorios, etc..) además se puede agregar el tamaño, fecha, etc. ó ponerle una imagen descriptiva del tipo de archivo y una imagen de un carpeta para los directorios. Solo es cuestión de imaginación…
Saludos…








