gzencode

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

gzencodeCrea una stringa compressa con gzip

Descrizione

gzencode(string $data, int $level = -1, int $encoding_mode = FORCE_GZIP): string

Questa funzione restituisce una versione compressa di data compatibile con l'output del programma gzip.

Per ulteriori informazioni sul formato dei file GZIP, consultare il documento: » Specifica del formato di file GZIP versione 4.3 (RFC 1952).

Elenco dei parametri

data

I dati da codificare.

level

Il livello di compressione. Può essere dato come 0 per nessuna compressione fino a 9 per la massima compressione. Se non viene fornito, il livello di compressione predefinito adottato sarà quello di default della libreria zlib.

encoding_mode

La modalità di codifica. Può essere FORCE_GZIP (il default) o FORCE_DEFLATE.

Prima di PHP 5.4.0, se si utilizza FORCE_DEFLATE, si ottiene una stringa compressa col DEFLATE standard di zlib (comprendente gli header zlib) dopo un header del file gzip ma senza il checksum crc32 finale.

In PHP 5.4.0 e versioni successive, FORCE_DEFLATE genera un output conforme a RFC 1950, costituito da un header zlib, i dati compressi col DEFLATE e un checksum Adler.

Valori restituiti

La stringa codificata o false se si è verificato un errore.

Esempi

I dati risultanti contengono gli header e la struttura dati appropriati per creare un file .gz standard, ad esempio:

Example #1 Creare un file gzip

<?php
$data
= implode("", file("bigfile.txt"));
$gzdata = gzencode($data, 9);
$fp = fopen("bigfile.txt.gz", "w");
fwrite($fp, $gzdata);
fclose($fp);
?>

Vedere anche:

add a note

User Contributed Notes 1 note

up
5
jp dot amarok at email dot cz
1 year 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