(PECL eio >= 0.0.1dev)
eio_read — Lê um descritor de arquivo em determinada posição
$fd,$length,$offset,$pri,$callback,$data = NULL
eio_read() lê até length
bytes do descrito de arquivo fd na posição
offset. Os bytes lidos são armazenados no argumento
result de callback.
fdFluxo, recurso de socket ou descritor numérico de arquivo.
lengthNúmero máximo de bytes para leitura.
offsetPosição no arquivo.
priA prioridade da requisição: EIO_PRI_DEFAULT, EIO_PRI_MIN, EIO_PRI_MAX ou null.
Se null for passado, o parâmetro pri internamente será definido como
EIO_PRI_DEFAULT.
callback
A função callback é chamada quando a requisição é concluída.
Ela deve corresponder ao seguinte protótipo:
void callback(mixed $data, int $result[, resource $req]);datasão dados personalizados passados para a requisição.
resultvalor de resultado específico da requisição; basicamente, o valor retornado pela chamada de sistema correspondente.
reqé um recurso de requisição opcional que pode ser usado com funções como eio_get_last_error().
data
Variável arbitrária passada para callback.
eio_read() armazena os bytes lidos no argumento
result da funcão
callback.
Exemplo #1 Exemplo de eio_read()
<?php
// Abre um arquivo temporário e escreva alguns bytes nele
$temp_filename = "eio-temp-file.tmp";
$fp = fopen($temp_filename, "w");
fwrite($fp, "1234567890");
fclose($fp);
/* Função chamada quando eio_read() termina */
function my_read_cb($data, $result) {
global $temp_filename;
// Mostra os bytes lidos
var_dump($result);
// Fecha o arquivo
eio_close($data);
eio_event_loop();
// Remove o arquivo temporário
@unlink($temp_filename);
}
/* Função chamada quando eio_open() termina */
function my_file_opened_callback($data, $result) {
// $result deve conter o descritor de arquivo
if ($result > 0) {
// Lê 5 bytes iniciando do terceiro
eio_read($result, 5, 2, EIO_PRI_DEFAULT, "my_read_cb", $result);
eio_event_loop();
} else {
// eio_open() falhou
unlink($data);
}
}
// Abre o arquivo para leitura e gravação
eio_open($temp_filename, EIO_O_RDWR, NULL,
EIO_PRI_DEFAULT, "my_file_opened_callback", $temp_filename);
eio_event_loop();
?>O exemplo acima produzirá algo semelhante a:
string(5) "34567"