<?php declare(strict_types=1); namespace GuzzleHttp\Psr7; use Psr\Http\Message\StreamInterface; /** * Uses PHP's zlib.inflate filter to inflate zlib (HTTP deflate, RFC1950) or gzipped (RFC1952) content. * * This stream decorator converts the provided stream to a PHP stream resource, * then appends the zlib.inflate filter. The stream is then converted back * to a Guzzle stream resource to be used as a Guzzle stream. * * @link http://tools.ietf.org/html/rfc1950 * @link http://tools.ietf.org/html/rfc1952 * @link http://php.net/manual/en/filters.compression.php */ final class InflateStream implements StreamInterface { use StreamDecoratorTrait; /** @var StreamInterface */ private $stream; public function __construct(StreamInterface $stream) { $resource = StreamWrapper::getResource($stream); // Specify window=15+32, so zlib will use header detection to both gzip (with header) and zlib data // See http://www.zlib.net/manual.html#Advanced definition of inflateInit2 // "Add 32 to windowBits to enable zlib and gzip decoding with automatic header detection" // Default window size is 15. stream_filter_append($resource, 'zlib.inflate', STREAM_FILTER_READ, ['window' => 15 + 32]); $this->stream = $stream->isSeekable() ? new Stream($resource) : new NoSeekStream(new Stream($resource)); } }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
Exception | Folder | 0755 |
|
|
AppendStream.php | File | 5.84 KB | 0644 |
|
BufferStream.php | File | 3.17 KB | 0644 |
|
CachingStream.php | File | 4.48 KB | 0644 |
|
DroppingStream.php | File | 1.17 KB | 0644 |
|
FnStream.php | File | 4.4 KB | 0644 |
|
Header.php | File | 3.84 KB | 0644 |
|
HttpFactory.php | File | 3.02 KB | 0644 |
|
InflateStream.php | File | 1.36 KB | 0644 |
|
LazyOpenStream.php | File | 926 B | 0644 |
|
LimitStream.php | File | 4.2 KB | 0644 |
|
Message.php | File | 8.13 KB | 0644 |
|
MessageTrait.php | File | 7.6 KB | 0644 |
|
MimeType.php | File | 52.9 KB | 0644 |
|
MultipartStream.php | File | 4.92 KB | 0644 |
|
NoSeekStream.php | File | 524 B | 0644 |
|
PumpStream.php | File | 4.5 KB | 0644 |
|
Query.php | File | 3.57 KB | 0644 |
|
Request.php | File | 3.81 KB | 0644 |
|
Response.php | File | 4.79 KB | 0644 |
|
Rfc7230.php | File | 665 B | 0644 |
|
ServerRequest.php | File | 9.37 KB | 0644 |
|
Stream.php | File | 7.23 KB | 0644 |
|
StreamDecoratorTrait.php | File | 3.28 KB | 0644 |
|
StreamWrapper.php | File | 4.01 KB | 0644 |
|
UploadedFile.php | File | 4.75 KB | 0644 |
|
Uri.php | File | 21.36 KB | 0644 |
|
UriComparator.php | File | 1.12 KB | 0644 |
|
UriNormalizer.php | File | 8.22 KB | 0644 |
|
UriResolver.php | File | 8.36 KB | 0644 |
|
Utils.php | File | 15.2 KB | 0644 |
|