eio_readdir
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
eio_readdir
Референца за `function.eio-readdir.php` со подобрена типографија и навигација.
eio_readdir
(PECL eio >= 0.0.1dev)
eio_readdir — Чита низ цела директориум
= NULL
string
$path,int
$flags,int
$pri,callable
$callback,string
$data Ги ескејпува специјалните знаци во): resource
Чита низ цела директориум (преку opendir, readdir and
closedir системски повици) и враќа или имиња или низа во
result аргументот на callback
функција, во зависност од flags argument.
Параметри
path- Патека на директориум.
flags- Комбинација од 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-
Произволна променлива предадена на
callback.
Вратени вредности
eio_readdir() враќа ресурс за барање при успех, или false при неуспех. Поставува result аргументот на
callback функција според
flags:
-
EIO_READDIR_DENTS(int) -
eio_readdir() знаменце. Ако е наведено, аргументот за резултат на повикот станува низа со следниве клучеви:
'names'- низа од имиња на директориуми'dents'- низа одstruct eio_dirent- низи слични на имаат следниве клучеви секоја:'name'- името на директориумот;'type'- едно од EIO_DT_* константи;'inode'- бројот на inode, ако е достапен, инаку неспецификуван; -
EIO_READDIR_DIRS_FIRST(int) - Кога е наведено ова знаменце, имињата ќе бидат вратени во редослед каде веројатните директориуми доаѓаат први, во оптимален редослед на статистика.
-
EIO_READDIR_STAT_ORDER(int) -
Кога е наведено ова знаменце, имињата ќе бидат вратени во редослед погоден за
stat'инг секој од нив. При планирање на stat() сите датотеки во дадениот директориум, вратениот редослед најверојатно ќе биде најбрз. -
EIO_READDIR_FOUND_UNKNOWN(int)
Типови на јазли:
-
EIO_DT_UNKNOWN(int) - Непознат тип на јазол (многу често). Понатаму stat() needed.
-
EIO_DT_FIFO(int) - FIFO тип на јазол
-
EIO_DT_CHR(int) - Тип на јазол
-
EIO_DT_MPC(int) - Тип на јазол за мултиплексиран уред со знаци (v7+coherent)
-
EIO_DT_DIR(int) - Тип на директориумски јазол
-
EIO_DT_NAM(int) - Тип на специјална именувана датотека на Xenix
-
EIO_DT_BLK(int) - Тип на јазол
-
EIO_DT_MPB(int) - Мултиплексиран блок уред (v7+coherent)
-
EIO_DT_REG(int) - Тип на јазол
-
EIO_DT_NWK(int) -
EIO_DT_CMP(int) - HP-UX тип на специјална мрежа
-
EIO_DT_LNK(int) - Тип на јазол за врска
-
EIO_DT_SOCK(int) - Тип на јазол за приклучок
-
EIO_DT_DOOR(int) - Solaris тип на јазол за врата
-
EIO_DT_WHT(int) - Тип на јазол
-
EIO_DT_MAX(int) - Највисока вредност на типот на јазол
Примери
Пример #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)
}
}
}