Position actuelle: Accueil> Derniers articles> Explication détaillée de PHP ZIP_ENTRY_READ () Fonction: Comment lire le contenu du fichier zip

Explication détaillée de PHP ZIP_ENTRY_READ () Fonction: Comment lire le contenu du fichier zip

gitbox 2025-06-15

1. Introduction

La fonction zip_entry_read () dans PHP est utilisée pour lire les données du fichier dans le package ZIP. Cette fonction dépend de l'objet zip_entry, donc avant d'appeler, vous devez utiliser la fonction zip_entry_open () pour ouvrir l'objet Zip_entry. La fonction zip_entry_read () lit progressivement les données du package ZIP via un pointeur interne jusqu'à ce qu'il soit lu à la fin du fichier, et renvoie une chaîne vide, indiquant que le fichier a été lu.

2. Prototype de fonction

Prototype de fonction zip_entry_read

 
string zip_entry_read(resource $zip_entry, int $length)
        

Prototype de fonction ZIP_ENTRY_OPEN

 
bool zip_entry_open(resource $zip, resource $zip_entry [, string $mode = "rb"])
        

3. Description du paramètre

Zip_entry_read Fonction Paramètre Description

Cette fonction a deux paramètres:

  • zip_entry: l'objet zip_entry à lire
  • Longueur: le nombre d'octets à lire

ZIP_ENTRY_OPEN Fonction Paramètre Description

Cette fonction a trois paramètres:

  • Zip: le flux zip à ouvrir
  • zip_entry: l'objet zip_entry à ouvrir
  • MODE: Le mode d'ouverture du fichier zip, la valeur par défaut est "RB", ce qui signifie ouvrir un fichier zip en mode en lecture seule.

4. Description de la valeur de retour

La fonction zip_entry_read () renvoie une chaîne contenant des données lues dans le fichier correspondant à zip_entry. S'il a été lu à la fin du fichier, la fonction renvoie une chaîne vide.

La fonction zip_entry_open () renvoie une valeur booléenne indiquant si l'objet Zip_entry a été ouvert avec succès. Renvoie vrai en cas de succès, renvoyez false en cas d'échec.

5. Démonstration d'échantillon

L'exemple suivant montre comment utiliser la fonction zip_entry_read () pour lire le contenu dans un fichier zip:

 
<?php
// Ouvrirzipdocument
$zip = zip_open("test.zip");
if ($zip) {
    while ($zip_entry = zip_read($zip)) {
        $entry_name = zip_entry_name($zip_entry);
        if (substr($entry_name, -1) != '/') {
            if (zip_entry_open($zip, $zip_entry, "r")) {
                echo "Contents of $entry_name:";
                while ($data = zip_entry_read($zip_entry, 1024)) {
                    echo $data;
                }
                zip_entry_close($zip_entry);
            }
        }
    }
    zip_close($zip);
}
?>
        

Le code ci-dessus traverse tous les fichiers du fichier test.zip et lit le contenu de chaque fichier.

6. Choses à noter

Lors de la lecture de fichiers volumineux, il est recommandé d'appeler la fonction ZIP_ENTRY_READ () plusieurs fois, de lire une partie des données à chaque fois et de vérifier s'il a été lu à la fin du fichier à chaque fois qu'il est lu. Cela peut réduire efficacement l'utilisation de la mémoire et améliorer les performances du programme.

De plus, lorsque vous utilisez la fonction zip_entry_read (), assurez-vous d'appeler la fonction zip_entry_open () pour ouvrir l'objet zip_entry, sinon une erreur sera causée.