Listar archivos de un directorio correctamente
by Desendoll on Jun.30, 2009, under PHP
Para listar un directorio tan solo tenemos que ejecutar 3 funciones (opendir, readir,closedir), pero la manera de utilizarlas es importante. Si empezamos con el closedir, mal vamos. Por lo que mejor empezar con opendir, después readdir y finalizamos “cerrando” el directorio, closedir. Por ejemplo así:
if ($gestor = opendir(’/ruta/a/archivos‘)) {
while ($archivo = readdir($gestor)) {
echo “$archivo\n“;
}
}
Esto funciona, pero hay un error. Es mejor utilizar un condicional que también nos iguala el tipo, porque sino un archivo que tenga de nombre FALSE, nos cerrara el bucle. La solución:
if ($gestor = opendir(’/ruta/a/archivos‘)) {
while (false !== ($archivo = readdir($gestor))) {
echo “$archivo\n“;
}
}
De esta forma nos aseguramos de que el false es un bool y no un string.
Los operadores de comparación que distinguen entre tipo son === y !==. Parece una tontería utilizarlos pero nos ahorran los típicos dolores de cabeza cuando no encontramos porque nos esta saltando un bucle o nos entra en un condicional.
