PHP Conference Nagoya 2025

gzencode

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

gzencodeCria uma string comprimida no formato gzip

Descrição

gzencode(string $data, int $level = -1, int $encoding = ZLIB_ENCODING_GZIP): string|false

Esta função retorna uma versão comprimida dos dados de entrada data compatível com a saída do programa gzip.

Para mais informações sobre o formato de arquivo GZIP, consulte o documento: » Especificação do formato de arquivo GZIP versão 4.3 (RFC 1952).

Parâmetros

data

Os dados a serem codificados.

level

O nível de compressão. Pode ser dado como 0 para nenhuma compressão até 9 para máxima compressão. Se não fornecido, o nível de compressão padrão será o nível de compressão padrão da biblioteca zlib.

encoding

O modo de codificação. Pode ser FORCE_GZIP (o padrão) ou FORCE_DEFLATE.

FORCE_DEFLATE gera saída compatível com o RFC 1950, consistindo de um cabeçalho zlib, os dados desinflados e um checksum Adler.

Valor Retornado

A string codificada, ou false se ocorrer um erro.

Exemplos

Os dados resultantes contêm os cabeçalhos e a estrutura de dados apropriados para criar um arquivo .gz padrão, por exemplo:

Exemplo #1 Criando um arquivo gzip

<?php
$data
= file_get_contents("arquivogrande.txt");
$gzdata = gzencode($data, 9);
file_put_contents("arquivogrande.txt.gz", $gzdata);
?>

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês) 2 notes

up
12
Sam Dowling
13 years ago
this is a benchmark test of gzencode (.txt file)
----------------------------------------------
original file size = 3.29 MB (3,459,978 bytes)
compress lvl 1 = 1.09 MB (1,144,006 bytes)
compress lvl 2 = 1.06 MB (1,119,518 bytes)
compress lvl 3 = 1.03 MB (1,085,567 bytes)
compress lvl 4 = 953 KB (976,538 bytes)
compress lvl 5 = 909 KB (931,486 bytes)
compress lvl 6 = 910 KB (932,516 bytes)
compress lvl 7 = 910 KB (932,608 bytes)
compress lvl 8 = 910 KB (932,646 bytes)
compress lvl 9 = 910 KB (932,652 bytes)
----------------------------------------------
up
1
jp dot amarok at email dot cz
1 month ago
It may be difficult to understand the differences between "gzcompress", "gzdeflate" and "gzencode". Here are my notes:

gzcompress()
------------
Uses ZLIB_ENCODING_DEFLATE (https://www.php.net/manual/en/zlib.constants.php#constant.zlib-encoding-deflate)
ZLIB compression algorithm as per RFC 1950.

Compatible with pigz. (Not compatible with gzip.)
Has a header (compression details, begins with 0x78) and a footer (Adler32 checksum of uncompressed data in big-endian).

gzdeflate()
------------
Uses ZLIB_ENCODING_RAW (https://www.php.net/manual/en/zlib.constants.php#constant.zlib-encoding-raw)
DEFLATE algorithm as per RFC 1951.

No header and footer. Pure DEFLATE.

gzencode()
------------
Uses ZLIB_ENCODING_GZIP (https://www.php.net/manual/en/zlib.constants.php#constant.zlib-encoding-gzip)
GZIP algorithm as per RFC 1952.

Compatible with gzip.
Header begins with magic number 0x1f8b, then compression method 8 (DEFLATE), no file flags, no timestamp, with operating system ID.
Footer contains CRC32 checksum of uncompressed data and then size of uncompressed data, both in little-endian.
To Top