Funzioni di compressione Zlib
Introduzione
questo modulo permette di leggere e scrivere in modo trasparente i file compressi con gzip (.gz), attraverso versioni di molte delle funzioni del filesystem in grado di operare su file compressi con gzip (ed anche su file non compressi, ma non con i socket).
Nota: La versione 4.0.4 ha introdotto un wrapper di fopen per i file .gz, che permette di usare una speciale URL 'zlib:' per accedere ai file compressi utilizzando le normali funzioni di accesso ai file [ f*() ], semplicemente anteponendo al nome del file o percorso il prefisso 'zlib:' nella chiamata a fopen().
Nella versione 4.3.0, questo prefisso è stato cambiato in 'zlib://' per evitare ambiguità con i nomi di file contenenti il carattere ':'.
Questa funzionalità richiedere una libreria di runtime C che fornisca la funzione fopencookie(). Al momento sembra che la GNU libc sia l'unica libreria a fornire questa funzionalità .
Requisiti
Questo modulo usa le funzioni di » zlib di Jean-loup Gailly e Mark Adler. Si deve utilizzare una versione >= 1.0.9 con questo modulo.
Installazione
Zlib support in PHP is not enabled by default. You will need to configure PHP --with-zlib[=DIR]
La versione per Windows di PHP ha già compilato il supporto per questo modulo. Non occorre caricare alcun modulo addizionale per potere utilizzare queste funzioni.
Nota: Built-in support for zlib on Windows is available with PHP 4.3.0.
Configurazione di Runtime
Il comportamento di queste funzioni è influenzato dalle impostazioni di php.ini.
L'estensione zlib permette di comprimere in modo trasparente le pagine on-the-fly, se il browser supporta questa funzionalità . Quindi ci sono due opzioni nel file di configurazione php.ini.
Nome | Default | Configurabile in |
---|---|---|
zlib.output_compression | "Off" | PHP_INI_ALL |
zlib.output_compression_level | "-1" | PHP_INI_ALL |
zlib.output_handler | "" | PHP_INI_ALL |
Breve descrizione dei parametri di configurazione.
- zlib.output_compression boolean/integer
-
Decide se comprimere le agine in maniera trasparente. Se questa opzione è impostata a "On" in php.ini o nella configurazione di Apache, le pagine vengono compresse se il browser invia un header "Accept-Encoding: gzip" o "deflate". Gli header "Content-Encoding: gzip" (oppure "deflate") e "Vary: Accept-Encoding" sono aggiunti all'output.
Questa opzione accetta anche valori interi oltre ai booleani "On"/"Off", in questo modo è possibile impostare la dimensione del buffer (il default è 4KB).
Nota: output_handler deve essere vuoto se quest opzione è 'On' ! Altrimenti occorre utilizzare zlib.output_handler.
- zlib.output_compression_level integer
-
Livello di compressione utilizzato per la compressione trasparente dell'output.
- zlib.output_handler string
-
Non si possino specificare ulteriori handler dell'output se zlib.output_compression è attivo. Questa impostazione è come output_handler ma con un ordine differente.
Tipi di risorse
Questa estensione non definisce alcun tipo di risorsa.
Costanti predefinite
Queste costanti sono definite da questa estensione e sono disponibili solo se l'estensione è stata compilata nel PHP o se è stata caricata dinamicamente a runtime.
Esempi
Questo esempio apre un file temporaneo e vi scrive una stringa di prova, quindi stampa il contenuto del file due volte.
Example#1 Esempio di Zlib
<?php
$filename = tempnam('/tmp', 'zlibtest') . '.gz';
echo "<html>\n<head></head>\n<body>\n<pre>\n";
$s = "Only a test, test, test, test, test, test, test, test!\n";
// apre il file in scrittura con la massima compressione
$zp = gzopen($filename, "w9");
// scrive la stringa sul file
gzwrite($zp, $s);
// chiude il file
gzclose($zp);
// apre il file in lettura
$zp = gzopen($filename, "r");
// legge 3 caratteri
echo gzread($zp, 3);
// stampa fino alla fine del file e lo chiude
gzpassthru($zp);
gzclose($zp);
echo "\n";
// apre il file e stampa il contenuto (la seconda volta)
if (readgzfile($filename) != strlen($s)) {
echo "Errore nelle funzioni zlib!";
}
unlink($filename);
echo "</pre>\n</body>\n</html>\n";
?>
Indice dei contenuti
- gzclose — Chiude un puntatore a file gz
- gzcompress — Comprime una stringa col metodo COMPRESS
- gzdecode — Decodes a gzip compressed string
- gzdeflate — Comprime una stringa con il metodo DEFLATE
- gzencode — Crea una stringa compressa con gzip
- gzeof — Test for end-of-file on a gz-file pointer
- gzfile — Read entire gz-file into an array
- gzgetc — Get character from gz-file pointer
- gzgets — Get line from file pointer
- gzgetss — Get line from gz-file pointer and strip HTML tags
- gzinflate — Inflate a deflated string
- gzopen — Open gz-file
- gzpassthru — Output all remaining data on a gz-file pointer
- gzputs — Alias di gzwrite
- gzread — Binary-safe gz-file read
- gzrewind — Rewind the position of a gz-file pointer
- gzseek — Seek on a gz-file pointer
- gztell — Tell gz-file pointer read/write position
- gzuncompress — Uncompress a compressed string
- gzwrite — Binary-safe gz-file write
- readgzfile — Output a gz-file
- zlib_get_coding_type — Returns the coding type used for output compression