Vaya al Contenido

PHP Listado de Archivos - SuperHispano

Saltar menú
SuperHispano
+34 012 345 678
info@example.com
España 03:19:18 sábado 07/02/26
Saltar menú
Saltar menú
Saltar menú
Taller > PHP > Manejo de archivos

Listado de Archivos en PHP


En PHP, es posible listar archivos y directorios de forma programática, lo que es útil para tareas como mostrar el contenido de un directorio o realizar operaciones masivas sobre archivos. En este artículo, aprenderás cómo utilizar las funciones readdir() y scandir() para listar archivos de un directorio, con ejemplos detallados y fáciles de entender.

La función readdir(): Listado de archivos uno por uno


La función readdir() permite leer el contenido de un directorio de forma secuencial. Para usar readdir(), primero debes abrir el directorio con la función opendir() y, al finalizar, cerrarlo con closedir().

Sintaxis:


readdir(?resource $dir_handle = null): string|false

$dir_handle (opcional): Es el manejador del directorio previamente abierto con opendir(). Si no se especifica, PHP asume el último directorio abierto por opendir().

Ejemplo 1: Listar archivos en el directorio actual


Este ejemplo abre el directorio actual y muestra los archivos uno por uno:

$dir = getcwd(); // Obtener el directorio actual

if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
echo "Nombre del archivo: " . $file . PHP_EOL;
}
closedir($dh);
}
}


Explicación:


getcwd() obtiene el directorio actual.
opendir() abre el directorio y devuelve un manejador.
readdir() lee cada archivo secuencialmente hasta que no quedan más archivos.
closedir() cierra el directorio.

Ejemplo 2: Listar archivos en un directorio específico


Aquí listamos los archivos de un directorio especificado:

$dir = "/ruta/a/directorio/";

if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
echo "Archivo encontrado: " . $file . PHP_EOL;
}
closedir($dh);
} else {
echo "No se pudo abrir el directorio.";
}
} else {
echo "La ruta no es un directorio.";
}


La función scandir(): Listado de archivos como un array


La función scandir() es más directa que readdir() porque devuelve todos los archivos de un directorio como un array. También permite ordenar los resultados alfabéticamente en orden ascendente o descendente.

Sintaxis:


scandir(string $directory, int $sorting_order = SCANDIR_SORT_ASCENDING, ?resource $context = null): array|false

$directory (obligatorio): El directorio a escanear.
$sorting_order (opcional): Define el orden de los resultados. Los valores posibles son:
SCANDIR_SORT_ASCENDING (predeterminado): Orden alfabético ascendente.
SCANDIR_SORT_DESCENDING: Orden alfabético descendente.
SCANDIR_SORT_NONE: Sin orden.
$context (opcional): Un recurso de flujo, normalmente no necesario para operaciones simples.

Ejemplo 1: Listar archivos con scandir()


$dir = "/ruta/a/directorio/";
$archivos = scandir($dir);

foreach ($archivos as $archivo) {
echo "Archivo: " . $archivo . PHP_EOL;
}


Salida esperada:

.
..
archivo1.txt
archivo2.txt


El primer y segundo elementos (. y ..) representan el directorio actual y el directorio padre, respectivamente.

Ejemplo 2: Ordenar archivos en orden descendente


$dir = "/ruta/a/directorio/";
$archivos = scandir($dir, SCANDIR_SORT_DESCENDING);

foreach ($archivos as $archivo) {
echo "Archivo: " . $archivo . PHP_EOL;
}


Este ejemplo ordena los archivos en orden alfabético descendente.

Ejemplo 3: Filtrar archivos con una extensión específica


Si deseas listar solo los archivos que terminan con una extensión en particular (por ejemplo, .txt), puedes usar un filtro:

$dir = "/ruta/a/directorio/";
$archivos = scandir($dir);

foreach ($archivos as $archivo) {
if (pathinfo($archivo, PATHINFO_EXTENSION) == "txt") {
echo "Archivo de texto: " . $archivo . PHP_EOL;
}
}


Comparación entre readdir() y scandir()


readdir(): Ideal si necesitas leer archivos de uno en uno o si prefieres un enfoque secuencial.
scandir(): Más conveniente cuando deseas obtener todos los archivos a la vez como un array y aplicar condiciones o filtros.

Conclusión


PHP ofrece diferentes formas de listar archivos dentro de un directorio. Las funciones readdir() y scandir() son las más utilizadas para este propósito. Mientras que readdir() es útil para procesar archivos de manera secuencial, scandir() ofrece una forma rápida y eficiente de obtener todos los archivos como un array. Con los ejemplos presentados, ahora puedes listar y gestionar archivos en tus proyectos PHP de manera eficiente.
+34 012 345 678
+34 012 345 678 (fax)
example@superhispano.com
Creado con WebSite X5
Regreso al contenido
Icono de la aplicación
SuperHispano Instale esta aplicación en su pantalla de inicio para una mejor experiencia
Toque Botón de instalación en iOS y luego "Agregar a su pantalla"