
Normalmente, cuando usamos el lenguaje de programación PHP, lo hacemos para mostrar al usuario de una página web, en base a ciertos parámetros, un resultado en HTML interpretable por el navegador que esté usando.
En la parte del servidor donde tengamos instalado PHP, además de esto, podemos usarlo para realizar ciertas funciones sobre el mismo, ejecutar comandos, leer y escribir archivos, …, y en nuestro caso, para buscar o listar los archivos contenidos en un directorio.
Para ello, PHP nos ofrece la función opendir, la cual realiza la apertura de un gestor o manejador de directorio, sobre el cual ejecutaremos ciertas funciones que nos darán los resultados esperados. Entre ellas, se encuentran:
- readdir – que leerá una entrada del directorio
- closedir – que realizará el cierre del manejador de directorio.
Así, para realizar el recorrido, o listado, de los archivos contenidos en una carpeta, o directorio, de nuestro servidor PHP, lo haremos de la manera indicada en el siguiente código:
1 2 3 4 5 6 7 8 9 10 11 12 13 | //Apertura del manejador de directorio $directorio = opendir( $rutaDirectorio ); //Lectura de los distintos archivos y subdirectorios (incluidos '.' y '..' en sistemas Linux) while ( $archivo = readdir( $directorio ) ) { //Operaciones a realizar sobre el archivo, //cuyo nombre se encuentra en la variable $archivo } //Cierre del manejador de directorio closedir( $directorio ); |
Como podemos ver, en primer lugar se abre el manejador de directorios mediante la función opendir, cuyo parámetro será la ruta del directorio que queremos gestionar. Ten en cuenta que para que el resultado sea satisfactorio, debe tener permiso de acceso al mismo, en cuyo caso contrario, o en caso de no existir, devolverá FALSE.
Una vez creado el manejador de directorio, realizamos la llamada a la función readdir, cuyo parámetro es el gestor de directorio, y ésta nos irá devolviendo, uno a uno, los nombres de los archivos y/o directorios que se encuentran dentro de él. Los nombres de los mismos se devolverán en la variable $archivo. Esta función listará también los enlaces simbólicos ‘.’ y ‘..’, en el caso de un sistema Linux, que hacen referencia al directorio actual y al anterior.
Tras haber realizado las operaciones pertinentes y necesarias sobre los nombres de dichos archivos y carpetas, realizamos el cierre y liberación del manejador de directorio mediante la función closedir.
De esta forma, si en algún momento necesitas recorrer dinámicamente ciertas carpetas para buscar algún archivo, o para listarlos y mostrarlos al usuario, puedes hacer uso de estas funciones que nos ofrece PHP, siempre teniendo en cuenta el nivel de restricción que tanto los archivos como las carpetas poseen en el propio sistema de archivos del servidor donde lo tengamos instalado.
