La función
glob de php nos permite obtener una matriz con lar rutas correspondientes a los archivos de un directorio que coincidan con un patrón (para más información, consultar
glob en el manual oficial de php).
Si quisiéramos obtener todas las imágenes de un directorio, por ejemplo, podríamos usar el siguiente código:
<?php
$images = glob("/path/to/images/{*.gif,*.jpg,*.png}", GLOB_BRACE);
?>
Al ejecutarlo, la variable $images se convertirá en una matriz que contendrá todas las rutas de los archivos gif, jpg y png del directorio images.
Ahora bien, si quisiéramos obtener esa misma información, pero ordenada según la fecha de creación o modificación de los archivos, podríamos usar algo como esto:
<?php
function callback($arch){
return filemtime($arch);
}
$vec2=glob('*');
$vec1=array_map('callback',$vec2);
$vec=array_combine($vec2,$vec1);
asort($vec);
$vec=array_keys($vec);
echo '<pre>';
print_r($vec);
echo '</pre>';
?>
Ese código nos listará los archivos desde el más antiguo al más nuevo. Si quisiéramos listarlos en orden inverso, nos bastaría con reemplazar asort por arsort:
<?php
function callback($arch){
return filemtime($arch);
}
$vec2=glob('*');
$vec1=array_map('callback',$vec2);
$vec=array_combine($vec2,$vec1);
arsort($vec);
$vec=array_keys($vec);
echo '<pre>';
print_r($vec);
echo '</pre>';
?>
Por supuesto, existen otros caminos para listar y ordenar los archivos de un directorio, más allá de que, dependiendo de cómo esté configurado nuestro servidor, la función glob no siempre estará disponible, pero el mostrado es seguramente uno de los más eficientes.