Ejemplos php – Recorrer ficheros de un directorio
Pequeño ejemplo en php de cómo recorrer ficheros de un directorio.
Con este pequeño ejemplo empezamos una nueva categoría del blog, Programación php. En esta ocación vamos a crear una función que nos permita recorrer un directorio y visualizar los ficheros que contiene:
function listarArchivos( $path ){ // Abrimos la carpeta que nos pasan como parámetro $dir = opendir($path); // Leo todos los ficheros de la carpeta while ($elemento = readdir($dir)){ // Tratamos los elementos . y .. que tienen todas las carpetas if( $elemento != "." && $elemento != ".."){ // Si es una carpeta if( is_dir($path.$elemento) ){ // Muestro la carpeta echo "<p><strong>CARPETA: ". $elemento ."</strong></p>"; // Si es un fichero } else { // Muestro el fichero echo "<br />". $elemento; } } } } // Llamamos a la función para que nos muestre el contenido de la carpeta gallery listarArchivos("./gallery/");
Repasamos un poco las funciones que utilizamos en el ejemplo:
- Con opendir() abrimos la carpeta que queremos tratar para listar su contenido.
- Con readdir() dentro del while, vamos cogiendo elementos (ficheros) que contiene la carpeta.
- Con is_dir() miramos si el elemento que estamos tratando es un directorio o un fichero. En el ejemplo tratamos diferente los dos elementos.
- Al final llamamos a la función listarArchivos(«./gallery/»); pasándole la carpeta que queremos listar con la trayectorio relativa a partir de donde tenemos el fichero .php con el código.
Por tanto, con este pequeño script podemos recorrer una carpeta y mostrar su contenido. En el siguiente, trabajaremos con los ficheros ( les cambiaremos los permisos ).
Espero que os haya sido de utilidad este pequeño ejemplo en php de cómo recorrer ficheros de un directorio. Y sí, lógicamente, el código puede ser muy mejorable, y está claro que puede hacerse mucho más completo, pero sólo intenta ser un ejemplo para que veáis cómo su utilizan ciertas funciones de una manera sencilla y rápida.
Más información
Buen ejemplo, gracias!
Hola tengo este programa y lo que necesito es que los directorios que seleccione en el directorio actual los pueda descargar mediante un archivo zip
<?php
echo "«.$file.»«;
}
}
}
closedir($dh);
}
}
$ruta=»./»;
listar_directorios_ruta($ruta);
?>
Muchas GRacias
Hola!,
Gracias por el tutorial. Lo pude aplicar y mi consulta es la siguiente:
Necesito recorrer un directorio (con archivos html), leer cada html y armar una tabla con contenido que yo determino. Pude hacer funcionar lo segundo, por separado con fopen, pero me está costando combinar ambas funciones para abrir directorio, leer contenido de archivo, imprimir row en html y asì hasta que no queden mas archivos.
Alguna idea?
Gracias desde ya.
Hola LS, aquí te dejo un enlace dónde hay un ejemplo de cómo leer los ficheros de una carpeta y unir sus contenidos en una variable String: https://blog.trescomatres.com/2019/10/php-leer-contenido-varios-ficheros/
sucio pero funcional
Muchas gracias por compartir, me sirvió de maravilla.
Hola, excelente desarrollo!
Tengo una pregunta, ¿Si quiero leer solamente archivos con extensión .xml, como le podría hacer?
Gracias.