php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #77080 Deflate not working
Submitted: 2018-10-29 14:27 UTC Modified: 2018-10-30 08:57 UTC
Votes:1
Avg. Score:5.0 ± 0.0
Reproduced:1 of 1 (100.0%)
Same Version:1 (100.0%)
Same OS:1 (100.0%)
From: huisman at comandi dot nl Assigned:
Status: Open Package: Zlib related
PHP Version: PHP 7.2.11 OS: Ubuntu 18.04.1 LTS
Private report: No CVE-ID: None
View Add Comment Developer Edit
Anyone can comment on a bug. Have a simpler test case? Does it work for you on a different platform? Let us know!
Just going to say 'Me too!'? Don't clutter the database with that please — but make sure to vote on the bug!
Your email address:
MUST BE VALID
Solve the problem:
50 - 33 = ?
Subscribe to this entry?

 
 [2018-10-29 14:27 UTC] huisman at comandi dot nl
Description:
------------
`stream_filter_append` in combination with `zlib.deflate` no longer works as expected in PHP 7.2 and produces an empty string instead of the expected compressed string. (see test script).

Test script:
---------------
<?php

$stream = fopen('php://temp', 'w+');

fwrite($stream, 'something something');

stream_filter_append($stream, 'zlib.deflate', STREAM_FILTER_READ, ['level' => 6]);

rewind($stream);

$contents = fread($stream, 1024);


Expected result:
----------------
A compressed string

Actual result:
--------------
An empty string

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2018-10-29 22:39 UTC] cmb@php.net
Works here: <https://3v4l.org/RRJ8b>.
 [2018-10-29 22:40 UTC] cmb@php.net
-Summary: Defalate not working +Summary: Deflate not working
 [2018-10-30 08:56 UTC] huisman at comandi dot nl
-PHP Version: 7.2Git-2018-10-29 (Git) +PHP Version: PHP 7.2.11
 [2018-10-30 08:56 UTC] huisman at comandi dot nl
Strange, ran on PHP 7.2.11-3+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Oct 25 2018 06:44:08) ( NTS ) in a script it's working.

The following zlib configuration is set:

zlib

ZLib Support => enabled
Stream Wrapper => compress.zlib://
Stream Filter => zlib.inflate, zlib.deflate
Compiled Version => 1.2.11
Linked Version => 1.2.11

Directive => Local Value => Master Value
zlib.output_compression => Off => Off
zlib.output_compression_level => -1 => -1
zlib.output_handler => no value => no value
 [2018-10-30 08:57 UTC] huisman at comandi dot nl
Strange, when ran on PHP 7.2.11-3+ubuntu18.04.1+deb.sury.org+1 (cli) (built: Oct 25 2018 06:44:08) ( NTS ) in a script it's not working.

The following zlib configuration is set:

zlib

ZLib Support => enabled
Stream Wrapper => compress.zlib://
Stream Filter => zlib.inflate, zlib.deflate
Compiled Version => 1.2.11
Linked Version => 1.2.11

Directive => Local Value => Master Value
zlib.output_compression => Off => Off
zlib.output_compression_level => -1 => -1
zlib.output_handler => no value => no value
 [2019-12-12 13:34 UTC] martins256 at gmail dot com
The zlib.deflate stream filter is working as expected in these versions: 5.5.21 - 5.5.38, 5.6.5 - 7.1.33

But in these versions the zlib.deflate stream filter truncates data.
5.2.0 - 5.5.20, 5.6.0 - 5.6.4, 7.2.0 - 7.4.0

Here is another test code version:

$string = str_repeat("0123456789", 100);
$resource = fopen('data://text/plain,' . $string,'r');
stream_filter_append($resource, 'zlib.deflate', STREAM_FILTER_READ, 6);
$compressed = stream_get_contents($resource);
echo strlen($compressed);

Results visible here:
https://3v4l.org/OOjF4
 
PHP Copyright © 2001-2020 The PHP Group
All rights reserved.
Last updated: Fri Aug 07 18:01:27 2020 UTC