A deflate stream supporting deflate, zlib and gzip encodings.
A note on the compression strategy:
The strategy parameter is used to tune the compression algorithm.
Use the value DEFAULT_STRATEGY for normal data, FILTERED for data produced by a filter (or predictor), HUFFMAN_ONLY to force Huffman encoding only (no string match), or RLE to limit match distances to one (run-length encoding).
Filtered data consists mostly of small values with a somewhat random distribution. In this case, the compression algorithm is tuned to compress them better. The effect of FILTERED is to force more Huffman coding and less string matching; it is somewhat intermediate between DEFAULT_STRATEGY and HUFFMAN_ONLY.
RLE is designed to be almost as fast as HUFFMAN_ONLY, but give better compression for PNG image data.
FIXED prevents the use of dynamic Huffman codes, allowing for a simpler decoder for special applications.
The strategy parameter only affects the compression ratio but not the correctness of the compressed output even if it is not set appropriately.
Source: zlib Manual
Encode data with deflate/zlib/gzip encoding.
static string http\Encoding\Stream\Deflate::encode(string $data[, int $flags = 0])