(PECL eio >= 0.0.1dev)
eio_readdir — Читает содержимое директории
$path
   , int $flags
   , int $pri
   , callable $callback
   [, string $data = NULL
  ] )
   Читает содержимое директории (посредством системных вызовов
   opendir, readdir и
   closedir) и либо возвращает имена файлов, либо передает
   массив в качестве аргумента result в функцию 
   callback. Поведение метода зависит от значения параметра
   flags.
  
pathПуть к директории.
flagsКомбинация констант EIO_READDIR_*.
priПриоритет запросов: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX, или NULL.
Если передан NULL, то pri устанавливается в
EIO_PRI_DEFAULT.
callback
Функция callback вызывается при завершении запроса.
Она должна удовлетворять следующему прототипу: 
void callback(mixed $data, int $result[, resource $req]);
dataявляется пользовательскими данными, переданными в запросе.
resultсодержит результирующее значение, зависящее от запроса; обычно это значение, возвращаемое соответствующим системным вызовом.
reqявляется опциональным запрашиваемым ресурсом, который может использоваться с такими функциями как eio_get_last_error()
data
      Данные, которые необходимо передать функции callback.
     
   eio_readdir() возвращает ресурс запроса или FALSE в случае
   ошибки. Также может задавать значение аргумента result
   функции callback в зависимости от значения параметра
   flags:
  
EIO_READDIR_DENTS
      (integer)
     EIO_READDIR_DIRS_FIRST
      (integer)
     EIO_READDIR_STAT_ORDER
      (integer)
     EIO_READDIR_FOUND_UNKNOWN
      (integer)
     Node types:
EIO_DT_UNKNOWN
      (integer)
     EIO_DT_FIFO
      (integer)
     EIO_DT_CHR
      (integer)
     EIO_DT_MPC
      (integer)
     EIO_DT_DIR
      (integer)
     EIO_DT_NAM
      (integer)
     EIO_DT_BLK
      (integer)
     EIO_DT_MPB
      (integer)
     EIO_DT_REG
      (integer)
     EIO_DT_NWK
      (integer)
     EIO_DT_CMP
      (integer)
     EIO_DT_LNK
      (integer)
     EIO_DT_SOCK
      (integer)
     EIO_DT_DOOR
      (integer)
     EIO_DT_WHT
      (integer)
     EIO_DT_MAX
      (integer)
     Пример #1 Пример использования eio_readdir()
<?php
/* Вызывается, когда отработает eio_readdir() */
function my_readdir_callback($data, $result) {
    echo "Вызвана функция ", __FUNCTION__, "\n";
    echo "данные: "; var_dump($data);
    echo "результат: "; var_dump($result);
    echo "\n";
}
eio_readdir("/var/spool/news", EIO_READDIR_STAT_ORDER | EIO_READDIR_DIRS_FIRST,
  EIO_PRI_DEFAULT, "my_readdir_callback");
eio_event_loop();
?>
Результатом выполнения данного примера будет что-то подобное:
Вызвана функция my_readdir_callback
данные: NULL
результат: array(2) {
 ["names"]=>
  array(7) {
   [0]=>
    string(7) "archive"
    [1]=>
    string(8) "articles"
    [2]=>
    string(8) "incoming"
    [3]=>
    string(7) "innfeed"
    [4]=>
    string(8) "outgoing"
    [5]=>
    string(8) "overview"
    [6]=>
    string(3) "tmp"
  }
 ["dents"]=>
  array(7) {
   [0]=>
    array(3)
    {
     ["name"]=>
      string(7)
      "archive"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393265)
    }
   [1]=>
    array(3)
    {
     ["name"]=>
      string(8)
      "articles"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393266)
    }
   [2]=>
    array(3)
    {
     ["name"]=>
      string(8)
      "incoming"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393267)
    }
   [3]=>
    array(3)
    {
     ["name"]=>
      string(7)
      "innfeed"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393269)
    }
   [4]=>
    array(3)
    {
     ["name"]=>
      string(8)
      "outgoing"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393270)
    }
   [5]=>
    array(3)
    {
     ["name"]=>
      string(8)
      "overview"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393271)
    }
   [6]=>
    array(3)
    {
     ["name"]=>
      string(3)
      "tmp"
      ["type"]=>
      int(4)
      ["inode"]=>
      int(393272)
    }
  }
}