Listar archivos de un directorio con PHP

21 Jun

En este pequeño tutorial veremos algunas formas de listar los archivos en un directorio usando PHP.

Usando readdir() y sus amigos

En la familia de los *dir() encontramos, por un uso relacionado, a opendir(), readdir() y closedir(). Generalmente estas tres funciones deben trabajar en conjunto, abriendo, leyendo y cerrando un directorio respectivamente.

opendir() – Abre un gestor de directorio.

readdir() – Lee una entrada desde un gestor de directorio.

closedir() – Cierra un gestor de directorio.

Veamos un ejemplo de cómo usar los tres.

null   
 

Ahora, si queremos filtrar para sólo listar los archivos con cierta extensión, podemos hacerlo así:

null   
 

Usando glob()

La función glob() busca coincidencias de nombres de ruta con un patrón, permitiendo que podamos “filtrar” el contenido que queremos listar.

 

Por ejemplo, si queremos listar los archivos con extensión .png que se encuentran en la carpeta /home/DaPa/images/

null   
 

Usando scandir()

La función scandir() lista los archivos y directorios ubicados en la ruta especificada.

 

Sigamos con el ejemplo de querer listar los archivos con cierta extensión dentro de un directorio.

null   
 

Usando dir()

La función dir() retorna una instancia de la clase Directory, trabajando así como un mecanismo pseudo-orientado a objetos para la lectura de un directorio.

null   
 

Con este método también es posible usar el filtro usado en los ejemplos anteriores.

Conclusiones

Con esto hemos visto los métodos para listar archivos en un directorio. Éstos se pueden mezclar y/o anidar para generar un árbol de archivos incluyendo subcarpetas y carpetas especiales. Son métodos bastante sencillos y con ciertas similitudes entre sí pero hay para todos los gustos.

Como siempre, esperamos que sea de utilidad para alguien y que si tienen dudas o sugerencias las dejan acá.

rexogin alpha pharma

Acerca del autor

Daniel Pérez ha escrito 10 publicaciones en este blog.

THE POSTS ARE DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT WITHOUT ANY WARRANTY. IT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. Los quiero.

5 Comentarios a “Listar archivos de un directorio con PHP”

  1. León 22 junio, 2011 at 11:54 #

    Hay que hacer una aclaración de versiones, y es que ese procedimiento se hace de forma muy diferente en PHP4 y PHP5.

  2. Diseño Web Bogotá 13 octubre, 2011 at 18:00 #

    La información del blog es muy interesante, gracias por publicar.

  3. Maguelo 9 noviembre, 2011 at 17:33 #

    Como está, muchas gracias por la info, me ha sido de mucha ayuda, solo tengo una pregunta. ¿Como hago para enlistar solo los nombre de los archivos, sin sus extención o tipo de archivo? Te agradezco que me puedas ayudar. Chauu…

    • DaPa 14 noviembre, 2011 at 22:17 #

      Hola Maguelo, gracias por tus comentarios.

      Si sólo quieres listar el nombre de los archivos sin incluir la extensión, puedes hacer lo siguiente:

      La linea

      null    
      echo "$archivo\n";

      la reemplazas por

      null    
      $fileinfo = pathinfo($archivo);
      echo $fileinfo['filename'] . "\n";

      Haciendo uso de la función pathinfo, obtenemos la información relacionada con la ruta del archivo y la almacenamos en una variable -será un vector asociativo-, y luego imprimimos el valor ‘filename‘ del vector que obtuvimos como resultado de ejecutar pathinfo. Éste contiene únicamente el nombre del archivo, sin extensión.

      Nota: Es útil con todos los métodos mencionados en el post.

      Espero que te sea útil.

      Hasta pronto.

  4. Landa 1 febrero, 2014 at 14:26 #

    Hola, gracias por el aporte. Tengo una duda:

    Cómo puedes poner la ruta de una carpeta para poder visualizar los archivos que existen, quiero llamar a la carpeta de C:/Usuarios/HP/Mis Documentos y de ahí mandar a llamar los archivos con extensión .xml y que me los muestre en la pantalla y de ahí poder descargarlos.

    Gracias

Deja un comentario