19 use StreamDecoratorTrait;
24 $header = $stream->read(10);
25 $filenameHeaderLength = $this->getLengthOfPossibleFilenameHeader($stream, $header);
27 $stream =
new LimitStream($stream, -1, 10 + $filenameHeaderLength);
29 stream_filter_append($resource,
'zlib.inflate', STREAM_FILTER_READ);
38 private function getLengthOfPossibleFilenameHeader(
StreamInterface $stream, $header)
40 $filename_header_length = 0;
42 if (substr(bin2hex($header), 6, 2) ===
'08') {
44 $filename_header_length = 1;
45 while ($stream->read(1) !== chr(0)) {
46 $filename_header_length++;
50 return $filename_header_length;