09 de Septiembre de 2010

Notas Espacio Programación

galería de imágenesvideo
AUTOR: Andrés Fernández
FECHA: 14/2/2009
LECTURAS:1434
Buscar Notas
volver
Listar el contenido de un directorio

Listar archivos de un directorio

Veremos cómo obtener los archivos de un directorio, ordenados por fecha de creación
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.
Home - Quiénes Somos - Portfolio - Espacio Diseño - Espacio Programación - Capacitación - Contacto - RSS - XHTML 1.0