Maison développement back-end tutoriel php Pièges courants avec les extensions PHP ZipArchive : évitez les erreurs courantes

Pièges courants avec les extensions PHP ZipArchive : évitez les erreurs courantes

Mar 10, 2024 pm 09:20 PM
压缩 错误 陷阱 解压缩

L'extension PHP ZipArchive est un outil très utile lorsque l'on travaille avec des fichiers compressés, mais il existe certains pièges courants rencontrés lors de son utilisation. L'éditeur PHP Strawberry vous expliquera comment éviter ces erreurs courantes et vous aidera à utiliser l'extension ZipArchive pour effectuer les opérations de compression et de décompression de fichiers plus facilement. En étudiant cet article, vous pourrez éviter certaines erreurs courantes d'utilisation de l'extension ZipArchive, améliorer l'efficacité du développement PHP et assurer le fonctionnement normal du programme.

Lors de la manipulation de fichiers compressés à l'aide de l'objet ZipArcHive, vous devez toujours vous assurer de fermer le descripteur de fichier une fois l'opération terminée. Le fait de ne pas fermer un descripteur de fichier peut entraîner une corruption de fichier ou des fuites de ressources.

$zip = new ZipArchive();
$zip->open("file.zip");
// ... 进行操作 ...
$zip->close(); // 关闭文件句柄
Copier après la connexion

Piège 2 : Traitement des documents de mauvaise qualité

ZipArchive lèvera une exception si le fichier à ouvrir est corrompu ou n'est pas conforme à la spécification ZIP. La validité des documents doit être vérifiée avant d'être traitée.

if ($zip->open("file.zip") !== TRUE) {
// 处理异常
}
Copier après la connexion

Piège 3 : Marque d'ordre des octets (BOM) non prise en compte

Si vous traitez des fichiers texte provenant de différentes sources, vous pouvez rencontrer la marque d'ordre des octets (BOM), qui est un caractère facultatif qui indique l'ordre des octets du fichier texte. Les fichiers codés en UTF-8 contiennent généralement une nomenclature, contrairement aux autres encodages. ZipArchive peut interpréter la nomenclature comme faisant partie du contenu du fichier, provoquant des erreurs de décompression. Pour éviter cela, utilisez la méthode ZipArchive::setExternalAttributesName() pour spécifier comment la nomenclature est gérée.

$zip->setExternalAttributesName(ZipArchive::FL_NODIR_ATTRIBUTES);
Copier après la connexion

Piège 4 : Méthode de compression non prise en charge

ZipArchive prend en charge plusieurs méthodes de compression telles que Deflate, Bzip2 et LZMA. Cependant, certains systèmes plus anciens peuvent ne pas prendre en charge toutes ces méthodes. Vous devez utiliser la méthode de compression Deflate si vous envisagez de distribuer des fichiers ZIP sur des systèmes qui ne prennent pas en charge ces méthodes.

$zip->addFile("file.txt", "file.txt");
$zip->setCompressionIndex(ZIPARCHIVE::CM_DEFLATE);
Copier après la connexion

Piège 5 : Opérer des entrées inexistantes

Lorsque vous utilisez l'objet ZipArchive pour manipuler une entrée dans un fichier compressé, assurez-vous que l'entrée existe. Sinon, ZipArchive lèvera une exception. Vérifiez l'existence d'une entrée à l'aide de la méthode ZipArchive::locateName().

if ($zip->locateName("file.txt") === -1) {
// 条目不存在,处理错误
}
Copier après la connexion

Piège 6 : Erreur non gérée

Diverses erreurs peuvent survenir lors de l'utilisation de ZipArchive. Vérifiez toujours l'objet ZipArchive pour les codes d'erreur et prenez les mesures appropriées si une erreur se produit.

switch ($zip->getStatus()) {
case ZIPARCHIVE::ER_OK:
// 没有错误
break;
case ZIPARCHIVE::ER_NOZIP:
// 并非 ZIP 文件
break;
case ZIPARCHIVE::ER_INVAL:
// 无效的 ZIP 文件
break;
// ... 其他错误处理 ...
}
Copier après la connexion

Piège 7 : Utiliser des index au lieu de noms

ZipArchive prend en charge l'accès aux entrées dans les fichiers compressés en utilisant index ou le nom. Cependant, l’utilisation d’index peut être risquée. L'index peut changer si les entrées sont réorganisées ou supprimées. Il est préférable d'accéder aux entrées par leur nom, car cela est moins sensible aux modifications des archives.

$entry = $zip->getEntry("file.txt"); // 使用名称
$entry = $zip->getEntryByIndex(0); // 使用索引 (不推荐)
Copier après la connexion

Piège 8 : Gérer les liens symboliques

ZipArchive ne prend pas en charge les liens symboliques. Si vous rencontrez un lien symbolique dans un fichier compressé, ZipArchive le traite comme un fichier normal. Afin de gérer les liens symboliques, vous devez utiliser un

outil

ou une bibliothèque externe.

Piège 9 : Ne pas tenir compte des limites de taille de fichier

ZipArchive a des limites de taille de fichier en fonction du

système d'exploitation

utilisé. Avant d'ajouter des fichiers volumineux à un fichier compressé, vérifiez la taille limite du fichier.

if ($filesize > 2e9) { // 2 GB
// 超过文件大小限制,处理错误
}
Copier après la connexion

Piège 10 : Utiliser des fichiers temporaires

Dans certains cas, vous devrez peut-être utiliser des objets ZipArchive avec des fichiers temporaires. Assurez-vous de supprimer les fichiers temporaires après utilisation pour libérer des ressources système et éviter les problèmes de

sécurité

.

// 创建临时文件
$tmpfile = tmpfile();
// 将 ZipArchive 对象与临时文件关联
$zip->open($tmpfile);
// ... 进行操作 ...
// 删除临时文件
fclose($tmpfile);
Copier après la connexion
En évitant ces pièges courants, vous pouvez garantir le bon fonctionnement de votre code PHP

ZipArchive. En suivant ces bonnes pratiques, vous pouvez traiter les fichiers compressés de manière efficace et fiable.

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Impossible de terminer l'opération (Erreur 0x0000771) Erreur d'imprimante Impossible de terminer l'opération (Erreur 0x0000771) Erreur d'imprimante Mar 16, 2024 pm 03:50 PM

Si vous rencontrez un message d'erreur lors de l'utilisation de votre imprimante, tel que l'opération n'a pas pu être terminée (erreur 0x00000771), cela peut être dû au fait que l'imprimante a été déconnectée. Dans ce cas, vous pouvez résoudre le problème grâce aux méthodes suivantes. Dans cet article, nous verrons comment résoudre ce problème sur un PC Windows 11/10. Le message d'erreur complet indique : L'opération n'a pas pu être terminée (erreur 0x0000771). L'imprimante spécifiée a été supprimée. Correction de l'erreur d'imprimante 0x00000771 sur un PC Windows Pour corriger l'erreur d'imprimante, l'opération n'a pas pu être terminée (erreur 0x0000771), l'imprimante spécifiée a été supprimée sur un PC Windows 11/10, suivez cette solution : Redémarrez le spool d'impression

Solution à l'erreur d'invite de mise à jour Windows 0x8024401c Solution à l'erreur d'invite de mise à jour Windows 0x8024401c Jun 08, 2024 pm 12:18 PM

Table des matières Solution 1 Solution 21. Supprimez les fichiers temporaires de Windows Update 2. Réparez les fichiers système endommagés 3. Afficher et modifier les entrées de registre 4. Éteignez la carte réseau IPv6 5. Exécutez l'outil WindowsUpdateTroubleshooter pour réparer 6. Éteignez le pare-feu et autres logiciels antivirus associés. 7. Fermez le service WidowsUpdate. Solution 3 Solution 4 Une erreur « 0x8024401c » se produit lors de la mise à jour de Windows sur les ordinateurs Huawei Symptôme Problème Cause Solution Toujours pas résolu ? Récemment, le serveur Web a dû être mis à jour en raison de vulnérabilités du système. Après la connexion au serveur, la mise à jour affiche le code d'erreur 0x8024401c.

Paramètres du taux de compression maximum de 7-zip, comment compresser 7zip au minimum Paramètres du taux de compression maximum de 7-zip, comment compresser 7zip au minimum Jun 18, 2024 pm 06:12 PM

J'ai découvert que le package compressé téléchargé à partir d'un certain site Web de téléchargement sera plus volumineux que le package compressé d'origine après décompression. La différence est de plusieurs dizaines de Ko et de dizaines de Mo. S'il est téléchargé sur un disque cloud ou un espace payant, cela n'a pas d'importance. si le fichier est petit, s'il y a beaucoup de fichiers, le coût de stockage sera considérablement augmenté. J'ai fait quelques recherches à ce sujet et je peux en tirer des leçons si nécessaire. Niveau de compression : compression 9 extrême Taille du dictionnaire : 256 ou 384, plus le dictionnaire est compressé, plus il est lent. La différence de taux de compression est plus grande avant 256 Mo, et il n'y a aucune différence de taux de compression après 384 Mo. Taille du mot : maximum 273. Paramètres : f=BCJ2, le taux de compression des paramètres de test et d'ajout sera plus élevé

Interprétation de l'erreur Oracle 3114 : causes et solutions Interprétation de l'erreur Oracle 3114 : causes et solutions Mar 08, 2024 pm 03:42 PM

Titre : Analyse de l'erreur Oracle 3114 : causes et solutions Lorsque vous utilisez la base de données Oracle, vous rencontrez souvent divers codes d'erreur, parmi lesquels l'erreur 3114 est relativement courante. Cette erreur implique généralement des problèmes de liaison à la base de données, qui peuvent provoquer des exceptions lors de l'accès à la base de données. Cet article interprétera l'erreur Oracle 3114, discutera de ses causes et donnera des méthodes spécifiques pour résoudre l'erreur et des exemples de code associés. 1. Définition de l'erreur 3114 Erreur Oracle 3114 réussite

Pourquoi l'application Xiangxiangfuzhai affiche-t-elle une erreur ? Pourquoi l'application Xiangxiangfuzhai affiche-t-elle une erreur ? Mar 19, 2024 am 08:04 AM

L'erreur d'affichage est un problème qui peut survenir dans l'application Xiangxiang Fuzhai. Certains utilisateurs ne savent pas pourquoi l'application Xiangxiang Fuzhai affiche des erreurs. Cela peut être dû à des problèmes de connexion réseau, à un trop grand nombre de programmes en arrière-plan, à des informations d'enregistrement incorrectes, etc. Ceci est l'introduction de l'éditeur sur la façon de résoudre les erreurs d'affichage des applications pour les utilisateurs. Les utilisateurs intéressés devraient venir y jeter un œil ! Pourquoi l'application Xiangxiang Fuzhai affiche-t-elle une réponse d'erreur : problème de connexion réseau, trop de programmes en arrière-plan, informations d'enregistrement incorrectes, etc. Détails : 1. [Problème de réseau] Solution : Vérifiez l'état du réseau de connexion de l'appareil, reconnectez-vous ou choisissez une autre connexion réseau pour utiliser. 2. [Trop de programmes en arrière-plan] Solution : fermez les autres programmes en cours d'exécution et libérez le système, ce qui peut accélérer l'exécution du logiciel. 3. [Informations d'enregistrement incorrectes

Linux Oups : explication détaillée de la signification de cette erreur Linux Oups : explication détaillée de la signification de cette erreur Mar 21, 2024 am 09:06 AM

LinuxOops : explication détaillée de la signification de cette erreur, nécessite des exemples de code spécifiques. Qu'est-ce que LinuxOops ? Dans les systèmes Linux, « Oups » fait référence à une situation dans laquelle une erreur grave dans le noyau provoque le crash du système. Oups est en fait un mécanisme de crash du noyau qui arrête le système lorsqu'une erreur fatale se produit et imprime les informations d'erreur pertinentes afin que les développeurs puissent diagnostiquer et résoudre le problème. Les problèmes se produisent généralement dans l'espace du noyau et n'ont rien à voir avec les applications de l'espace utilisateur. Lorsque le noyau rencontre

Le serveur de streaming génère une erreur [FIXED] Le serveur de streaming génère une erreur [FIXED] Mar 25, 2024 am 09:40 AM

Recevez-vous un serveur de streaming qui génère une erreur sur votre ordinateur ? Stremio est un service de streaming vidéo multiplateforme que vous pouvez utiliser pour diffuser et regarder des films, des émissions de télévision, des émissions de télévision en direct, etc. Certains utilisateurs ont signalé avoir reçu cette erreur en essayant de lancer l'application. Des erreurs peuvent survenir dans diverses circonstances, notamment en cas de problèmes Internet et de serveur. Cette erreur peut également survenir lors de l'utilisation de la version Web de Stremio. Les interférences des logiciels antivirus ou des pare-feu peuvent également provoquer des erreurs. Quoi qu'il en soit, vous pouvez résoudre le problème avec ce guide. Le serveur de streaming génère une erreur Lors de l'exécution de l'application Stremio sous Windows, vous pouvez rencontrer « Stremio Streaming Server a généré une erreur.

Comment décompresser des fichiers à Xunlei gratuitement Comment décompresser des fichiers gratuitement Comment décompresser des fichiers à Xunlei gratuitement Comment décompresser des fichiers gratuitement Mar 12, 2024 pm 03:04 PM

Lorsque nous utilisons cette plate-forme, nous pouvons utiliser la méthode de décompression gratuite des fichiers, afin de pouvoir ouvrir certains packages compressés que nous avons téléchargés, et bien sûr, il existe de nombreux fichiers, etc., qui peuvent être compris directement à partir de ce qui précède. de nombreux utilisateurs ne savent peut-être pas grand-chose à ce sujet, cela nous permet également de mieux utiliser certaines fonctions. Cela est également plus pratique pour nous lors du téléchargement d'autres fichiers à l'avenir. Cela peut être mieux utilisé et l'effet est toujours bon, donc aujourd'hui. Je vais vous proposer une variété d'effets d'utilisation complètement différents. Pourquoi ne connaissez-vous pas une fonction aussi utile ? Pour ceux d'entre vous qui ne la connaissent pas encore, amis, dépêchez-vous et jetez un œil à certains d'entre eux ? explications de stratégie ci-dessous. Vous ne pouvez pas manquer cette excitation.

See all articles