public function SessionStreamWrapper::stream_read in Examples for Developers 3.x
Same name and namespace in other branches
- 8 stream_wrapper_example/src/StreamWrapper/SessionStreamWrapper.php \Drupal\stream_wrapper_example\StreamWrapper\SessionStreamWrapper::stream_read()
Read from stream.
This method is called in response to fread() and fgets().
Note, remember to update the read/write position of the stream (by the number of bytes that were successfully read).
Note, PhpStreamWrapperInterface::stream_eof() is called directly after calling PhpStreamWrapperInterface::stream_read() to check if EOF has been reached. If not implemented, EOF is assumed.
Warning, when reading the whole file (e.g., with file_get_contents()), PHP will call PhpStreamWrapperInterface::stream_read() followed by PhpStreamWrapperInterface::stream_eof() in a loop but as long as PhpStreamWrapperInterface::stream_read() returns a non-empty string, the return value of PhpStreamWrapperInterface::stream_eof() is ignored.
Parameters
int $count: How many bytes of data from the current position should be returned.
Return value
string|false If there are less than $count bytes available, return as many as are available. If no more data is available, return either FALSE or an empty string.
Overrides PhpStreamWrapperInterface::stream_read
See also
fread()
fgets()
http://php.net/manual/en/streamwrapper.stream-read.php
File
- modules/
stream_wrapper_example/ src/ StreamWrapper/ SessionStreamWrapper.php, line 452
Class
- SessionStreamWrapper
- Example stream wrapper class to handle session:// streams.
Namespace
Drupal\stream_wrapper_example\StreamWrapperCode
public function stream_read($count) {
// @codingStandardsIgnoreEnd
if (is_string($this->sessionContent)) {
$remaining_chars = strlen($this->sessionContent) - $this->streamPointer;
$number_to_read = min($count, $remaining_chars);
if ($remaining_chars > 0) {
$buffer = substr($this->sessionContent, $this->streamPointer, $number_to_read);
$this->streamPointer += $number_to_read;
return $buffer;
}
}
return FALSE;
}