Le langage PHP dispose de nombreuses fonctions permettant d'utiliser les méthodes de dompression et de décompression de fichiers proposées par la librairie ZLIB.

Fonction
Description
ZLib
true | false = gzclose($id_fichier_zip);
ferme la ressource d'un fichier compressé.
true | false = gzeof($id_fichier_zip);
teste la fin d'un fichier compressé.
$tableau = gzfile($id_fichier_zip [, include_path]);
retourne la totalité d'un fichier compressé lu dans un tableau. Le second argument permet de rechercher un fichier dans le dossier spécifié par include_path (include_path=".[{;|:}chemin_dossier{;|:}...]") dans le fichier de configuration de PHP.
$caractere | false = gzgetc($id_fichier_zip);
retourne un caractère lu dans un fichier compressé.
$chaine | false = gzgets($id_fichier_zip, $longueur);
retourne une chaîne de caractères d'une certaine longueur d'un fichier compressé.
$chaine | false = gzgetss($id_fichier_zip, $longueur [, $balises]);
retourne une chaîne de caractères d'une certaine longueur d'un fichier compressé et supprime les balises HTML hormis celle qui sont spécifiées.
$id_fichier_zip = gzopen($fichier, $mode [, include_path]);
ouvre un fichier compressé selon un mode de lecture (r, rb) et/ou d'écriture (w, wb), à partir d'un fichier. Un ou plusieurs autres caractères peut être utilisé immédiatement après le mode afin d'indiquer la méthode de compression (wb9 : compression maximale, wb1 : compression minimale, wb6h : compresion Huffman, wb6f : filtrage des données). Pour le dernier argument voir gzfile.
true | false = gzpassthru($id_fichier_zip);
affiche toutes les informations d'un fichier compressé.
$nombre = gzputs($id_fichier_zip, $chaine [, $longueur]);
écrit une chaîne de caractères dans un fichier compressé.
$chaine = gzread($id_fichier_zip, $longueur);
retourne une chaîne de caractères lue dans un fichier compressé en mode binaire.
true | false = gzrewind($id_fichier_zip);
replace le pointeur courant au début du fichier.
true | false = gzseek($id_fichier_zip, $position);
déplace le pointeur courant dans un fichier compressé jusqu'à une certaine position.
$position = gztell($id_fichier_zip);
retourne la position courante du pointeur interne.
$nombre = gzwrite($id_fichier_zip, $chaine [, $longueur]);
écrit une chaîne de caractères dans un fichier compressé en mode binaire.
$nb_octets_lus | false = readgzfile($id_fichier_zip [, 1]);
affiche le contenu d'un fichier compressé.
$chaine_compressee | false = gzcompress($chaine [, niveau]);
compresse une chaîne de caractères dans le format ZLIB selon un niveau de compression compris entre 0 et 9.
$chaine_decompressee | false = gzuncompress($chaine, $longueur);
décompresse une chaîne de caractères ZLIB jusqu'à une certaine longueur.
$chaine_compressee | false = gzdeflate($chaine [, niveau]);
compresse une chaîne de caractères dans le format DEFLATE selon un niveau de compression compris entre 0 et 9.
$chaine_decompressee | false = gzinflate($chaine, $longueur);
décompresse une chaîne de caractères DEFLATE jusqu'à une certaine longueur.
$chaine_compressee | false = gzencode($chaine [, $niveau]);
crée une chaîne de caractères compressée avec gzip selon un niveau de compression compris entre 0 et 9.
ZIP
zip_close($id_fichier_zip);
ferme une archive Zip ouverte par zip_open.
zip_entry_close($id_element_zip);
ferme un élément d'archive ouvert par zip_read.
$taille = zip_entry_compressedsize($id_fichier_zip);
retourne la taille compressée de l'entrée archivée.
$methode = zip_entry_compressionmethod($id_element_zip);
retourne la méthode de compression de l'élément d'archive.
$taille = zip_entry_filesize($id_element_zip);
retourne la taille réelle de l'élément d'archive.
$nom = zip_entry_name($id_element_zip);
retourne le nom de l'élément d'archive.
true | false = zip_entry_open($id_fichier_zip, $id_entree_zip [, $mode]);
ouvre un nouvel élément dans une archive. L'argument $mode ne peut valoir actuellement que rb.
$chaine | false = zip_entry_read($id_element_zip [, $longueur]);
retourne les données lues dans une archive jusqu'à une certaine longueur.
$id_fichier_zip = zip_open($fichier);
ouvre une archive Zip et retourne un identifiant.
$id_element_zip = zip_read($id_fichier_zip);
lit le prochain élément d'une archive et retourne un identifiant.
Exemples [voir]
<html>
  <body>
    <?php
      $fichier = tempnam('C:\www\laltruiste\temp', 'archive').'.gz';

      $chaine = "Un contenu quelconque à sauvegarder !";
      //Ouverture le fichier en écriture avec une compression maximale wb9
      $id_arch = gzopen($fichier, "wb9");
      //Sauvegarde d'un contenu dans l'archive
      gzwrite($id_arch, $chaine);
      //Fermeture de l'archive
      gzclose($id_arch);

      //Réouverture de l'archive en lecture
      $id_arch = gzopen($fichier, "r");
      //Lecture de 10 caractères
      echo gzread($id_arch, 10);
      //Retour du pointeur de fichier au début de l'archive
      gzrewind($id_arch);
      //Affichage puis fermeture du contenu de l'archive
      gzpassthru($id_arch);

      //Ouverture et affichage de l'archive
      if(readgzfile($fichier) != strlen($chaine))
        echo 'Impossible de lire l\'archive '.$fichier.'!';
    ?>
  </body>
</html>