Cet exemple ouvre un fichier temporaire et y écrit une chaîne de test, puis, affiche le contenu de ce fichier, deux fois.
Exemple #1 Exemple avec Zlib
<?php
$filename = tempnam('/tmp', 'zlibtest') . '.gz';
echo "<html>\n<head></head>\n<body>\n<pre>\n";
$s = "Seulement un test, test, test, test, test, test, test, test!\n";
// Ouvre un fichier en écriture, avec une compression maximale
$zp = gzopen($filename, "w9");
// Ecrit une chaîne dans le fichier
gzwrite($zp, $s);
// Ferme le fichier
gzclose($zp);
// Ouvre un fichier en lecture
$zp = gzopen($filename, "r");
// Lit 3 caractères
echo gzread($zp, 3);
// Lit tout le contenu et ferme le fichier
gzpassthru($zp);
gzclose($zp);
echo "\n";
// Ouvre un fichier et affiche le contenu (pour la deuxième fois).
if (readgzfile($filename) != strlen($s)) {
echo "Erreur avec les fonctions zlib !";
}
unlink($filename);
echo "</pre>\n</body>\n</html>\n";
?>
Exemple #2 Fonctionnement avec l'API de compression et de décompression incrémentale
<?php
// Compression GZIP :
$deflateContext = deflate_init(ZLIB_ENCODING_GZIP);
$compressed = deflate_add($deflateContext, "Data to compress", ZLIB_NO_FLUSH);
$compressed .= deflate_add($deflateContext, ", more data", ZLIB_NO_FLUSH);
$compressed .= deflate_add($deflateContext, ", and even more data!", ZLIB_FINISH);
// Décompression GZIP :
$inflateContext = inflate_init(ZLIB_ENCODING_GZIP);
$uncompressed = inflate_add($inflateContext, $compressed, ZLIB_NO_FLUSH);
$uncompressed .= inflate_add($inflateContext, NULL, ZLIB_FINISH);
echo $uncompressed;
?>
L'exemple ci-dessus va afficher :
Data to compress, more data, and even more data!