> Faqs > Cómo ordenar las fotos de un directorio con PHP alfabéticamente o por fecha

Cómo ordenar las fotos de un directorio con PHP alfabéticamente o por fecha

¿Cómo puedo ordenar alfabeticamente o por fecha los archivos que se recuperan desde un directorio del sistema de archivos?

Esto es con PHP. Tengo el código siguiente:

$filehandle=opendir($ruta);	
while ($file=readdir($filehandle)) {			
    if ($file != "." && $file != ".."){
    	echo "<a href='$ruta$file' target='unafoto' width=200>
    	<img src='$ruta$file' width='200' /></a><br><br>";
    }
}
closedir($handle);

Gracias.

Respuestas

En principio me parece que no se podría pedirle a la función que lee los archivos de un directorio que te devuelva los elementos ordenados con algún criterio, pero lo podrías hacer tú con algo de programación.

La idea sería que, en vez de mostrar el listado de los archivos directamente en el bucle, crees una estructura de datos auxiliar que luego te permita realizar los órdenes necesarios. Esa estructura podría ser perfectamente un array asociativo.

Luego al mostrar los archivos, antes de ponerte a recorrer el array asociativo, simplemente le cambiarás el orden usando una de las funciones de ordenación de arrays.

Me ha parecido una práctica interesante, por lo que hemos hecho un artículo que detalla cómo realizar la ordenación de listados de directorio con PHP.

Miguel Angel
3280 145 214 17