stream_get_contents

(PHP 5)

stream_get_contents — Reads remainder of a stream into a string

Description

string stream_get_contents ( resource $handle [, int $maxlength [, int $offset ]] )

Identical to file_get_contents(), except that stream_get_contents() operates on an already open stream resource and returns the remaining contents in a string, up to maxlength bytes and starting at the specified offset .

Список параметров

handle (resource)

A stream resource (e.g. returned from fopen())

maxlength (integer)

The maximum bytes to read. Defaults to -1 (read all the remaining buffer).

offset (integer)

Seek to the specified offset before reading. Added in PHP 5.1.0.

Возвращаемые значения

Returns a string, or FALSE on failure.

Примеры

Пример #1 stream_get_contents() example

<?php

if ($stream fopen('http://www.example.com''r')) {
    
// print all the page starting at the offset 10
    
echo stream_get_contents($stream, -110);

    
fclose($stream);
}


if (
$stream fopen('http://www.example.net''r')) {
    
// print the first 5 bytes
    
echo stream_get_contents($stream5);

    
fclose($stream);
}

?>

Смотрите также

Замечание: Эта функция безопасна для обработки данных в двоичной форме.

Коментарии

Автор:
When omitting the parameter $maxlength, any received bytes are stacked up until the underlying stream is not readable anymore, the the function returns that stack in one piece.
2011-01-20 15:53:32
http://php5.kiev.ua/manual/ru/function.stream-get-contents.html
In that case when stream_get_contents/fread/fgets or other stream reading functions block indefinitely your script because they don't reached the limit of bytes to read use the socket_get_meta_data function to figure out the number of the bytes to read. It returns an array that contains a key named 'unread_bytes' and then pass that number to your favourite stream reading functions second parameter to read from the stream.

Maybe a good workaround to use the stream_select function, and set the socket to non-blocking mode with the use of stream_set_blocking($stream, 0). In this case the socket reading functions work properly.

Cheers, Ervin
2011-12-17 21:12:00
http://php5.kiev.ua/manual/ru/function.stream-get-contents.html

    Поддержать сайт на родительском проекте КГБ