Dutch PHP Conference 2025 - Call For Papers

eio_read

(PECL eio >= 0.0.1dev)

eio_readRead from a file descriptor at given offset

Опис

eio_read(
    mixed $fd,
    int $length,
    int $offset,
    int $pri,
    callable $callback,
    mixed $data = NULL
): resource

eio_read() reads up to length bytes from fd file descriptor at offset. The read bytes are stored in result argument of callback.

Параметри

fd

Stream, Socket resource, or numeric file descriptor

length

Maximum number of bytes to read.

offset

Offset within the file.

pri

Пріоритет запиту: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX або null. Якщо параметру pri задано значення null, то пріоритетом буде 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_read() stores read bytes in result argument of callback function.

Приклади

Приклад #1 eio_read() example

<?php
// Open a temporary file and write some bytes there
$temp_filename = "eio-temp-file.tmp";
$fp = fopen($temp_filename, "w");
fwrite($fp, "1234567890");
fclose($fp);

/* Is called when eio_read() is done */
function my_read_cb($data, $result) {
global
$temp_filename;

// Output read bytes
var_dump($result);

// Close file
eio_close($data);
eio_event_loop();

// Remove temporary file
@unlink($temp_filename);
}

/* Is called when eio_open() is done */
function my_file_opened_callback($data, $result) {
// $result should contain the file descriptor
if ($result > 0) {
// Read 5 bytes starting from third
eio_read($result, 5, 2, EIO_PRI_DEFAULT, "my_read_cb", $result);
eio_event_loop();
} else {
// eio_open() failed
unlink($data);
}
}

// Open the file for reading and writing
eio_open($temp_filename, EIO_O_RDWR, NULL,
EIO_PRI_DEFAULT, "my_file_opened_callback", $temp_filename);
eio_event_loop();
?>

Поданий вище приклад виведе щось схоже на:

string(5) "34567"

Прогляньте також

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top