Maison >développement back-end >tutoriel php >Bibliothèque de décompression Zip en PHP8.0 : ZipArchive

Bibliothèque de décompression Zip en PHP8.0 : ZipArchive

WBOY
WBOYoriginal
2023-05-14 08:54:262865parcourir

En tant que langage de programmation côté serveur populaire, PHP a été largement utilisé et pris en charge. La nouvelle bibliothèque de décompression Zip dans la version PHP8.0 est également une fonctionnalité très pratique qui peut fournir aux développeurs PHP davantage d'outils et de solutions de programmation.

Cette bibliothèque de décompression Zip s'appelle ZipArchive, qui est une classe de décompression et de compression Zip nouvellement introduite dans la version PHP 8.0. Cette fonctionnalité peut aider les développeurs à résoudre le problème des opérations sur les fichiers Zip en PHP et fournir une solution plus simple, plus rapide et plus efficace, permettant aux développeurs de développer et de gérer des projets plus facilement.

Avant d'utiliser la fonction ZipArchive, vous pouvez activer la fonction d'extension Zip dans le fichier de configuration et activer la prise en charge de ZipArchive. La méthode d'utilisation de ZipArchive est similaire au fonctionnement des objets PHP ordinaires. détail ci-dessous.

1. Workflow ZipArchive

ZipArchive est une classe d'espace de noms qui peut être appelée dans l'espace de noms PHP. Le flux de travail de base de ZipArchive est le suivant :

  • Tout d'abord, créez un objet ZipArchive et utilisez la méthode open() pour ouvrir le fichier Zip que vous souhaitez utiliser ou créer un nouveau fichier Zip ;
  • #🎜🎜 #Ensuite, utilisez la méthode addFile() pour ajouter des fichiers au fichier Zip, ou vous pouvez utiliser la méthode addFromString() pour ajouter des données de chaîne au fichier Zip
  •  ; Enfin, utilisez la méthode close() pour fermer le fichier Zip.
ZipArchive peut ouvrir des fichiers Zip dans deux modes : le mode lecture et le mode écriture. Si le fichier Zip est ouvert en mode écriture, vous pouvez ajouter des données de fichier ou de chaîne au fichier Zip et compresser le fichier Zip ; si le fichier Zip est ouvert en mode lecture, vous pouvez uniquement lire le fichier Zip. ne peut pas être ajouté ou modifié au fichier Zip.

2. Méthodes couramment utilisées de ZipArchive

ZipArchive fournit de nombreuses méthodes pratiques. Présentons en détail certaines méthodes couramment utilisées.

    Créer un objet ZipArchive
Pour utiliser la fonction ZipArchive, vous devez d'abord créer un objet ZipArchive. Vous pouvez utiliser l'instruction suivante pour créer. un objet ZipArchive.

$zip = new ZipArchive();

    Ouvrir le fichier Zip
Il existe deux modes pour ouvrir les fichiers Zip : le mode lecture et le mode écriture. Si vous devez écrire ou modifier un fichier Zip, vous devez ouvrir le fichier Zip en mode écriture. Les fichiers Zip peuvent être ouverts en utilisant les méthodes suivantes.

$zip->open($filename, $mode);

Parmi eux, $filename est le chemin et le nom du fichier Zip, $mode est le mode de lecture ou d'écriture et la valeur est ZipArchive::CREATE ou ZipArchive::OVERWRITE. ZipArchive::CREATE signifie créer un fichier Zip si le fichier Zip n'existe pas, et ZipArchive::OVERWRITE signifie écraser le fichier Zip d'origine si le fichier Zip existe.

    Ajouter des fichiers aux fichiers Zip
ZipArchive fournit plusieurs méthodes pour ajouter des fichiers ou des chaînes de données aux fichiers Zip. Parmi elles, la méthode addFile() peut ajouter un fichier au fichier Zip et la méthode addFromString() peut ajouter des données de chaîne au fichier Zip. Utilisez la méthode addFile() pour ajouter des fichiers locaux et la méthode addFromString() pour ajouter des chaînes.

$zip->addFile($filename, $localname);
$zip->addFromString($localname, $contents);

Parmi eux, $filename est le chemin complet et le nom du fichier à ajouter, $localname est le nom du fichier dans le fichier Zip et $contents est la chaîne à ajouter.

    Fermer le fichier Zip
Utilisez la méthode close() pour fermer le fichier Zip et terminer l'opération sur le fichier Zip.

$zip->close();

    Lire le contenu du fichier Zip
Si le mode d'ouverture du fichier Zip est le mode lecture, vous pouvez utiliser la méthode suivante pour lire le contenu du fichier Zip Lire le contenu du fichier.

$zip->getFromName($name);

Parmi eux, $name précise le nom du fichier dans le fichier Zip à lire.

3. Cas d'utilisation de ZipArchive

Jetons un coup d'œil à un cas spécifique pour montrer le processus d'utilisation de ZipArchive. Ce cas consiste à compresser le fichier image dans un fichier Zip et à enregistrer le fichier Zip sur le serveur.

$dir = './images';  // 图片目录
$zipname = 'images.zip';  // 压缩文件名

// 创建ZipArchive对象
$zip = new ZipArchive();

// 打开要写入的Zip文件
if ($zip->open($zipname, ZipArchive::CREATE) !== TRUE) {
  exit("无法创建Zip文件
");
}

// 从目录中读取文件,并将其添加到Zip文件中
if ($handle = opendir($dir)) {
  while (false !== ($entry = readdir($handle))) {
    if ($entry != "." && $entry != "..") {
      $zip->addFile($dir.'/'.$entry, $entry);
    }
  }
  closedir($handle);
}

// 关闭Zip文件
$zip->close();

// 将Zip文件保存到服务器
header('Content-Type: application/zip');
header('Content-Disposition: attachment; filename="'.basename($zipname).'"');
header('Content-Length: ' . filesize($zipname));
readfile($zipname);

// 清理Zip文件
unlink($zipname);

Dans ce cas, précisez d'abord le répertoire de l'image à compresser et le nom du fichier Zip à créer. Ensuite, créez un objet ZipArchive, ouvrez le fichier Zip et ajoutez les fichiers image du répertoire au fichier Zip. Enfin, enregistrez le fichier Zip sur le serveur et envoyez-le à l'utilisateur pour téléchargement. Enfin, vous devez nettoyer le fichier Zip et supprimer les fichiers Zip enregistrés sur le serveur.

4. Résumé

ZipArchive est une fonction très pratique introduite dans la version PHP8.0, qui peut faciliter l'exploitation et la gestion des fichiers Zip par les développeurs PHP. La méthode fournie par ZipArchive est simple et pratique, vous pouvez facilement ajouter des données de fichier ou de chaîne aux fichiers Zip, et vous pouvez également lire les données dans les fichiers Zip. Les fichiers Zip peuvent être facilement créés et gérés à l'aide de ZipArchive, apportant plus de commodité et d'efficacité à la programmation PHP.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn