(PECL eio >= 0.0.1dev)
eio_readdir — Reads through a whole directory
$path
, int $flags
, int $pri
, callable $callback
[, string $data
= NULL
] ) : resource
Reads through a whole directory(via the opendir, readdir and
closedir system calls) and returns either the names or an array in
result
argument of callback
function, depending on the flags
argument.
path
Directory path.
flags
Combination of EIO_READDIR_* constants.
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
Arbitrary variable passed to callback
.
eio_readdir() returns request resource on success, or
FALSE
on error. Sets result
argument of
callback
function according to
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)
Example #1 eio_readdir() example
<?php
/* Is called when eio_readdir() finishes */
function my_readdir_callback($data, $result) {
echo __FUNCTION__, " called\n";
echo "data: "; var_dump($data);
echo "result: "; 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 called data: NULL result: 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) } } }