eio_readdir
(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(). Если задан, в качестве аргумента callback-функции будет передаваться массив со следующими ключами: 'names' - массив имен директории 'dents' - массив структур типа struct eio_dirent, каждая из которых представляется массивом с ключами: 'name' - имя директории; 'type' - одна из констант EIO_DT_*; 'inode' - номер узла inode, если доступен, либо пустое значение;
-
EIO_READDIR_DIRS_FIRST
(integer) - Если этот флаг задан, первыми будут возвращаться имена директорий, затем имена файлов. Порядок следования имен в каждой группе будет оптимальным для применения фукнции stat.
-
EIO_READDIR_STAT_ORDER
(integer) - Если этот флаг задан, имена файлов и директорий будут возвращаеться в порядке, удобном для сбора статистики (stat) каждого из объектов. Если полученный список имен предполагается передавать в функцию stat(), порядок следования имен обеспечит наиболее быструю работу фукнции.
-
EIO_READDIR_FOUND_UNKNOWN
(integer)
Node types:
-
EIO_DT_UNKNOWN
(integer) - Неизвестный тип узла (очень часто). Необходима обработка функцией stat().
-
EIO_DT_FIFO
(integer) - Тип узла - FIFO
-
EIO_DT_CHR
(integer) - Тип узла
-
EIO_DT_MPC
(integer) - Тип узла - составное символьное устройство (v7+coherent)
-
EIO_DT_DIR
(integer) - Тип узла - директория
-
EIO_DT_NAM
(integer) - Тип узла - файл со специальным Xenix наименованием
-
EIO_DT_BLK
(integer) - Тип узла
-
EIO_DT_MPB
(integer) - Составное блочное устройство (v7+coherent)
-
EIO_DT_REG
(integer) - Тип узла
-
EIO_DT_NWK
(integer) -
EIO_DT_CMP
(integer) - Специальный тип узла для сетей HP-UX
-
EIO_DT_LNK
(integer) - Тип узла - ссылка
-
EIO_DT_SOCK
(integer) - Тип узла - сокет
-
EIO_DT_DOOR
(integer) - Тип узла - Solaris door
-
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) } } }
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Расширения для управления процессами программ
- Eio
- eio_busy
- eio_cancel
- eio_chmod
- eio_chown
- eio_close
- eio_custom
- eio_dup2
- eio_event_loop
- eio_fallocate
- eio_fchmod
- eio_fchown
- eio_fdatasync
- eio_fstat
- eio_fstatvfs
- eio_fsync
- eio_ftruncate
- eio_futime
- eio_get_event_stream
- eio_get_last_error
- eio_grp_add
- eio_grp_cancel
- eio_grp_limit
- eio_grp
- eio_init
- eio_link
- eio_lstat
- eio_mkdir
- eio_mknod
- eio_nop
- eio_npending
- eio_nready
- eio_nreqs
- eio_nthreads
- eio_open
- eio_poll
- eio_read
- eio_readahead
- eio_readdir
- eio_readlink
- eio_realpath
- eio_rename
- eio_rmdir
- eio_seek
- eio_sendfile
- eio_set_max_idle
- eio_set_max_parallel
- eio_set_max_poll_reqs
- eio_set_max_poll_time
- eio_set_min_parallel
- eio_stat
- eio_statvfs
- eio_symlink
- eio_sync_file_range
- eio_sync
- eio_syncfs
- eio_truncate
- eio_unlink
- eio_utime
- eio_write
Коментарии
404 Not Found