(PECL eio >= 0.0.1dev)
Read from a file descriptor at given offset.
resource eio_read ( mixed $fd, int $length, int $offset, int $pri, callable $callback [, mixed $data = NULL ] )
eio_read() reads up to length
bytes from fd
file descriptor at offset
. The read bytes are stored in result
argument of callback
.
Parameters:
fd
Stream, Socket resource, or numeric file descriptor
length
Maximum number of bytes to read.
offset
Offset within the file.
pri
The request priority: EIO_PRI_DEFAULT
, EIO_PRI_MIN
, EIO_PRI_MAX
, or NULL
. If NULL
passed, pri
internally is set to EIO_PRI_DEFAULT
.
callback
callback
function is called when the request is done. It should match the following prototype:
1 | void callback(mixed $data , int $result [, resource $req ]); |
data
Arbitrary variable passed to callback
.
Returns:
eio_read() stores read bytes in result
argument of callback
function.
Examples:
eio_read() example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | <?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(); ?> |
The above example will output something similar to:
string(5) "34567"
Please login to continue.