eio_readahead
eio_readlink
Fonctions Eio
PHP Manual

# eio_readdir

(PECL eio >= 0.0.1dev)

eio_readdir — Lit le contenu d'un dossier

### Description

resource eio_readdir ( string `$path` , int `$flags` , int `$pri` , callable `$callback` [, string `$data` = NULL ] )

Lit le contenu complet d'un dossier (via les appels systèmes opendir, readdir et closedir) et retourne soit les noms, soit un tableau suivant la valeur de l'argument `flags`.

### Liste de paramètres

`path`

  Chemin du dossier.

`flags`

  Combinaison de constantes EIO_READDIR_*.

`pri`

  La priorité de la requête : `EIO_PRI_DEFAULT`, `EIO_PRI_MIN`, `EIO_PRI_MAX`, ou `NULL`. Si `NULL` est passé, le paramètre `pri`, en interne, est défini à `EIO_PRI_DEFAULT`.

  `data`

    représente les données personnalisées passées à la requête.

  `result`

    représente la valeur résultante spécifique à la requête ; basiquement, la valeur retournée par l'appel système correspondant.

  `req`

    est la ressource optionnelle de la requête qui peut être utilisée avec les fonctions comme eio_get_last_error()

`callback`

  La fonction de rappel `callback` est appelée lorsque la requête est terminée. Elle doit correspondre au prototype suivant :

  `void callback(mixed $data, int $result[, resource $req]);`
`data`

  Variables arbitraires à passer à la fonction de rappel `callback`.

### Valeurs de retour

eio_readdir() retourne la ressource demandée en cas de succès, ou `FALSE` si une erreur survient. Définissez l'argument `result` de la fonction de rappel `callback` suivant le drapeau `flags` utilisé :

`EIO_READDIR_DENTS` (entier)
  Drapeau pour eio_readdir(). Si spécifié, l'argument de résultat de la fonction de rappel devient un tableau contenant les clés suivantes : 'names' - tableau de noms de dossiers 'dents' - tableau de struct eio_dirent - comme un tableau, mais contenant les clés spécifiques suivantes : 'name' - le nom du dossier ; 'type' - une des constantes EIO_DT_* ; 'inode' - le numbre d'inodes, si disponible, sinon ne sera pas spécifié ;
`EIO_READDIR_DIRS_FIRST` (entier)
  Lorsque ce drapeau est spécifié, les noms seront retournés dans un ordre où les dossiers arrivent en premier, et ensuite dans un ordre de statut optimal.
`EIO_READDIR_STAT_ORDER` (entier)
  Lorsque ce drapeau est spécifié, alors les noms seront retournés dans un ordre suivant le statut stat de chaque noeud. Si vous avez prévu d'appliquer la fonction stat() a tous les fichiers du dossier, il vous sera plus rapide d'utiliser ce drapeau.
`EIO_READDIR_FOUND_UNKNOWN` (entier)

Types de noeud :

`EIO_DT_UNKNOWN` (entier)
  Un noeud de type inconnu (souvent le cas). Une utilisation de la fonction stat() est nécessaire.
`EIO_DT_FIFO` (entier)
  Un noeud de type FIFO
`EIO_DT_CHR` (entier)
  Type de noeud
`EIO_DT_MPC` (entier)
  Un noeud de type périphérique à caractères multiplexés (v7+coherent)
`EIO_DT_DIR` (entier)
  Un noeud de type dossier
`EIO_DT_NAM` (entier)
  Un noeud de type fichier nommé spécialement Xenix
`EIO_DT_BLK` (entier)
  Type de noeud
`EIO_DT_MPB` (entier)
  Bloc multiplexé du périphérique (v7+coherent)
`EIO_DT_REG` (entier)
  Type de noeud
`EIO_DT_NWK` (entier)
`EIO_DT_CMP` (entier)
  Un noeud de type spécial du réseau HP-UX
`EIO_DT_LNK` (entier)
  Un noeud de type lien
`EIO_DT_SOCK` (entier)
  Un noeud de type socket
`EIO_DT_DOOR` (entier)
  Un noeud de type Solaris door
`EIO_DT_WHT` (entier)
  Type de noeud
`EIO_DT_MAX` (entier)
  Valeur de type de noeud le plus haut possible

### Exemples

Exemple #1 Exemple avec eio_readdir()

`<?php
/* Is called when eio_readdir() finishes */
function my_readdir_callback($data, $result) {
echo __FUNCTION__, " called\n";
echo "donnée : "; var_dump($data);
echo "résultat : "; 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();
?>`

L'exemple ci-dessus va afficher quelque chose de similaire à :

    my_readdir_callback called
    donnée : NULL
    résultat : 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)
        }
      }
    }

eio_readahead
eio_readlink
Fonctions Eio
PHP Manual