 |
CLXXXIV. Funzioni di compressione Zlib
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ą.
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.
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:
Builtin support for zlib on Windows is available with PHP 4.3.0.
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.
Tabella 1. Opzioni di configurazione di Zlib 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 |
Per ulteriori dettagli e definizioni delle costanti PHP_INI_* vedere
ini_set().
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.
Questa estensione non definisce alcun tipo di risorsa.
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.
Questo esempio apre un file temporaneo e vi scrive una stringa di prova,
quindi stampa il contenuto del file due volte.
Esempio 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";
?>
|
|
- Sommario
- gzclose -- Chiude un puntatore a file gz
- gzcompress -- Comprime una stringa col metodo COMPRESS
- 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
|  |