Función readdir

La función readdir lee el contenido de un directorio abierto mediante opendir. En cada llamada devuelve el nombre del siguiente archivo o false si no hay más archivos. La función mantiene un puntero interno de posición en el directorio.

Sintaxis

phpreaddir(resource $dir_handle): string|false

Ejemplo

Leer todos los archivos en un directorio:

php<?php
  $dir = opendir('/path/to/directory');
  
  while (($file = readdir($dir)) !== false) {
    echo $file . '<br>';
  }
  closedir($dir);
?>

Resultado de ejecutar el código (ejemplo de salida):

php"file1.txt"
"file2.jpg"
"subdirectory"

Ejemplo

Filtrar las entradas especiales '.' y '..':

php<?php
  $dir = opendir('.');
  
  while (($file = readdir($dir)) !== false) {
    if ($file != '.' && $file != '..') {
      echo $file . '<br>';
    }
  }
  closedir($dir);
?>

Resultado de ejecutar el código (muestra solo archivos y subdirectorios reales):

php'index.php'
'styles.css'
'images'

Ejemplo

Recopilar todos los archivos en un array:

php<?php
  $files = [];
  if ($handle = opendir('/path/to/dir')) {
    while (false !== ($entry = readdir($handle))) {
      if ($entry != '.' && $entry != '..') {
        $files[] = $entry;
      }
    }
    closedir($handle);
  }
  print_r($files);
?>

Resultado de ejecutar el código:

phpArray
(
  [0] => "document.pdf"
  [1] => "image.png"
  [2] => "data.json"
)

Ver también

  • la función opendir,
    que abre un manejador de directorio
  • la función scandir,
    que devuelve todos los archivos de un directorio en forma de array