Поток надувать обертку?

В PHP вы можете открыть gzipped-ресурс так:

$fp = fopen('compress.zlib://http://httpbin.org/gzip','rb')

или же

$fp = gzopen('http://httpbin.org/gzip','rb')

Как я могу открыть дефлированный ресурс? (такие как http://httpbin.org/deflate)

Нотабене я делаю не хочу прочитать весь поток в память, чтобы я мог запустить gzinflate в теме.

1

Решение

Ты можешь использовать stream_filter_append применить фильтр инфляции на чтение.

$fp = fopen('http://httpbin.org/deflate','rb');
$params = array('level' => 6, 'window' => 15, 'memory' => 9);
stream_filter_append($fp, 'zlib.inflate', STREAM_FILTER_READ, $params);
print fread($fp,8192);
1

Другие решения

Как уже упоминалось Вот, Вы можете использовать аргумент режима gzopen чтобы уточнить режим сжатия.

0