Ce module vous permet de lire et écrire de manière transparente
des fichiers compressés gzip (.gz), avec la plupart des fonctions
fichier qui fonctionnent
avec les fichiers compressés en gzip (et les fichiers décompressés
aussi, mais pas avec les sockets).
Note :
La version 4.0.4 a introduit la version étendue de
fopen() pour les fichiers compressés avec GZ.
Vous pouvez utiliser le préfixe spécial zlib:
dans les URL pour accéder directement et de manière transparente
aux fichiers compressés par GZ, avec toutes les fonctions f*() habituelles.
Cette fonctionnalité requiert une bibliothèque C qui fournit la fonction
fopencookie(). A ma connaissance, la bibliothèque
GNU libc est la seule à fournir cette fonctionnalité.
En version 4.3.0, zlib: a été changé pour
compress.zlib:// pour éviter les ambiguités avec
les fichiers contenant les caractères ':'. La fonction
fopencookie() n'est plus nécessaire. Plus
d'informations sont disponibles dans la section à propos des la section intitulée Flux compressés dans Annexe M.
Le support de Zlib dans PHP n'est pas activé par défaut.
Vous devez compiler PHP avec l'option
--with-zlib[=DIR].
La version Windows de PHP
dispose du support automatique de cette extension. Vous n'avez pas à ajouter
de bibliothèque supplémentaire pour disposer de ces fonctions.
Note :
Le support intégré de zlib est disponible depuis PHP 4.3.0.
Le comportement de ces fonctions est
affecté par la configuration dans le fichier php.ini.
L'extension zlib offre l'option de compresser de manière transparente les
pages PHP Ã la volée, si le navigateur du visiteur le supporte. Voici donc
les trois options à utiliser dans le php.ini.
Tableau 1. Options de configuration
Nom
Par défaut
Modifiable
Historique
zlib.output_compression
"0"
PHP_INI_ALL
Disponible depuis PHP 4.0.5.
zlib.output_compression_level
"-1"
PHP_INI_ALL
Disponible depuis PHP 4.3.0.
zlib.output_handler
""
PHP_INI_ALL
Disponible depuis PHP 4.3.0.
Pour plus de détails sur les constantes PHP_INI_*,
reportez-vous à Annexe G.
Voici un éclaircissement sur
l'utilisation des directives de configuration.
zlib.output_compression
booléen/entier
Active ou pas la compression transparente des pages. Si cette
option est mise à "On" dans php.ini ou dans la configuration
Apache, les pages sont compressées si le navigateur envoie un
en-tête "Accept-Encoding: gzip" ou "deflate".
Les en-têtes "Content-Encoding: gzip" (respectivement "deflate") et
"Vary: Accept-Encoding" sont ajoutés dans la page envoyée au navigateur.
En fonctionnement, il peut être défini uniquement avant tout affichage.
Cette option accepte aussi des valeurs entières au lieu des booléens,
"On"/"Off", ce qui vous permet de configurer la taille du tampon de sortie
(par défaut, il vaut 4ko).
Note : output_handler doit être
laissée à vide si cette option est activée. Sinon, vous devez
utiliser zlib.output_handler.
Vous ne pouvez pas spécifier de gestionnaire de sortie supplémentaire si
zlib.output_compression est activée. Cette configuration est la même que
output_handler mais dans un
ordre différent.
Ces constantes sont définies par cette
extension, et ne sont disponibles que si cette extension a été compilée avec
PHP, ou bien chargée au moment de l'exécution.
// ouvre le fichier en écriture avec la compression maximale $zp = gzopen($filename, "w9");
// écrit une chaîne dans le fichier gzwrite($zp, $s);
// ferme le fichier gzclose($zp);
// ouvre le fichier en lecture $zp = gzopen($filename, "r");
// lit 3 caractères echo gzread($zp, 3);
// affiche le reste du fichier, puis le ferme gzpassthru($zp); gzclose($zp);
echo "\n";
// ouvre le fichier et affiche le fichier une seconde fois if (readgzfile($filename) != strlen($s)) { echo "Erreur avec les fonctions zlib!"; } unlink($filename); echo "</pre>\n</body>\n</html>\n";
?>
Table des matières
gzclose -- Ferme un pointeur sur un fichier gz ouvert