/** * Copy the contents of a stream into another stream until the given number of * bytes have been read. * * @param StreamInterface $source Stream to read from * @param StreamInterface $dest Stream to write to * @param int $maxLen Maximum number of bytes to read. Pass -1 to * read the entire stream. */ function copy_to_stream(StreamInterface $source, StreamInterface $dest, $maxLen = -1) { if ($maxLen === -1) { while (!$source->eof()) { if (!$dest->write($source->read(1048576))) { break; } } return; } $bytes = 0; while (!$source->eof()) { $buf = $source->read($maxLen - $bytes); if (!($len = strlen($buf))) { break; } $bytes += $len; $dest->write($buf); if ($bytes == $maxLen) { break; } } }
public function stream_write($data) { return (int) $this->stream->write($data); }