Aller au contenu

PHP Zip

Les archives ZIP sont des fichiers compressés à l'aide de l'algorithme de compression ZIP. Elles sont souvent utilisées pour réduire la taille des fichiers et faciliter leur transfert sur Internet ou leur stockage sur disque. Une archive ZIP peut contenir un ou plusieurs fichiers et porte généralement l'extension .zip.

Classe PHP ZipArchive

Les anciennes fonctions zip_* ont été dépréciées dans PHP 7.4 et supprimées dans PHP 8.0. Les applications PHP modernes doivent utiliser la classe intégrée ZipArchive, qui offre une interface orientée objet robuste pour créer, lire et extraire des archives ZIP.

Les méthodes principales incluent :

  • open() – Ouvre une archive ZIP en lecture ou en écriture.
  • extractTo() – Extrait tous les fichiers ou des entrées spécifiques vers un répertoire spécifié.
  • close() – Ferme le descripteur de l'archive.
  • getStatusString() – Retourne un message d'état lisible par un humain pour la gestion des erreurs.

Exemple d'utilisation

L'exemple suivant montre comment utiliser ZipArchive pour extraire le contenu d'un fichier ZIP sur le disque, incluant une gestion basique des erreurs :

php
$zip = new ZipArchive();
$filename = 'example.zip';
$extractTo = './extracted_files';

if ($zip->open($filename) === true) {
    if (!is_dir($extractTo)) {
        mkdir($extractTo, 0755, true);
    }

    if ($zip->extractTo($extractTo) === true) {
        echo "Archive extracted successfully.";
    } else {
        echo "Extraction failed: " . $zip->getStatusString();
    }

    $zip->close();
} else {
    echo "Failed to open archive.";
}

Dans cet exemple, nous instancions la classe ZipArchive et tentons d'ouvrir l'archive à l'aide de open(). Si cela réussit, nous vérifions que le répertoire cible existe, puis nous extrayons tout le contenu avec extractTo(). Nous contrôlons la valeur de retour et utilisons getStatusString() pour le rapport d'erreurs avant de fermer le descripteur avec close().

Conclusion

Dans cet article, nous avons abordé la gestion des archives ZIP dans les versions modernes de PHP à l'aide de la classe ZipArchive. Nous avons expliqué ce que sont les archives ZIP et fourni un exemple pratique d'extraction de fichiers sur le disque avec une gestion appropriée des erreurs. En utilisant ZipArchive dans vos applications PHP, vous pouvez gérer de manière fiable les fichiers compressés pour le transfert ou le stockage.

Pratique

Parmi les affirmations suivantes, lesquelles sont vraies concernant l'extension ZIP en PHP ?

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.