Blog de Gonzalo

LISTADO DE FICHEROS ORDENADOS

En el proyecto que en el que estoy trabajando actualmente hay una sección que recorre un directorio y lista su contenido ordenado alfabéticamente y lo que hacía era recorrer el directorio con la función readdir guardando el contenido en un array y luego ordenaba el array y lo mostraba. Y la verdad es que no es la opción más eficiente porque se está recorriendo un directorio y luego un array.
Buscando en internet para un algoritmo más eficiente he visto que en php existe la función scandir que te devuelve los ficheros ya ordenados alfabéticamente. Es decirm que solo tienes una iteración y no dos como se ha mencionado al usar la función readdir.
Esta función tiene tres parámetros:

  • directory: El directorio del cual se listarán los ficheros.
  • sorting_order: Si no se le indica nada ordenará los ficheros de forma ascendiente. Si se le pasa el valor SCANDIR_SORT_DESCENDING, los ficheros se ordenarán alfabéticamente en sentido descendente y si se asigna SCANDIR_SORT_NONE entonces el resultado no se ordena.
  • context: Para esta opción es mejor visitar la web de php sobre funciones de flujos de la página oficial de php

Veamos un ejemplo:

$directorio = '/directorio';
$listado = scandir($directorio);
$listado = Array
(
[0] => .
[1] => ..
[2] => bar.php
[3] => foo.txt
[4] => somedir
)

La verdad es que es bastante fácil usarlo.

Compartir en twitter