Aktueller Standort: Startseite> Neueste Artikel> Wie verwendet ich ZIP_READ, um festzustellen, ob der letzte Zip -Eintrag gelesen wurde?

Wie verwendet ich ZIP_READ, um festzustellen, ob der letzte Zip -Eintrag gelesen wurde?

M66 2025-06-23

Bei der Arbeit mit ZIP -Dateien in PHP müssen häufig alle Einträge in das komprimierte Paket durchlaufen. PHP stellt die Funktion zip_read () mit zip_entry_read () zur Verfügung, um den Inhalt von Zip -Dateien zu lesen. In der tatsächlichen Operation ist jedoch ein häufiges Problem zu bestimmen, ob der letzte Eintrag gelesen wurde.

In diesem Artikel wird ausführlich erläutert, wie die Zip -Erweiterung von PHP und die Funktion zip_read () verwendet werden, um festzustellen, ob alle Einträge im komprimierten Paket gelesen wurden.

1. Überprüfung der Grundnutzung

Zunächst müssen wir eine ZIP -Datei mit ZIP_OPEN () öffnen, ein Ressourcenhandle zurückgeben und dann jedes Eintragsobjekt über ZIP_READ () erhalten. Das Beispiel lautet wie folgt:

 $zip = zip_open("http://m66.net/path/to/yourfile.zip");
if (is_resource($zip)) {
    while ($entry = zip_read($zip)) {
        echo "Einträge lesen: " . zip_entry_name($entry) . "\n";
        // Einträge lesenInhalt
        if (zip_entry_open($zip, $entry)) {
            $content = zip_entry_read($entry, zip_entry_filesize($entry));
            echo $content;
            zip_entry_close($entry);
        }
    }
    zip_close($zip);
} else {
    echo "Offen ZIP Datei fehlgeschlagen";
}

Im obigen Code erhalten wir jeden Eintrag nach Abfolge ($ Eintrag = ZIP_READ ($ ZIP)) , und das Ende der Schleife bedeutet, dass alle Einträge gelesen wurden.

2. Wie kann ich bestimmen, dass der letzte Eintrag gelesen wurde?

ZIP_READ () gibt die nächste Eintragsressource zurück. Wenn FALSE zurückgegeben wird, bedeutet dies, dass es keine Einträge mehr gibt. In der Tat besteht die direkte Bestimmung, ob der Rückgabewert von ZIP_READ () falsch besteht, zu bestimmen, ob alle Einträge gelesen wurden.

Beispiel:

 $zip = zip_open("http://m66.net/path/to/yourfile.zip");
if (is_resource($zip)) {
    while (($entry = zip_read($zip)) !== false) {
        echo "Aktueller Eintrag: " . zip_entry_name($entry) . "\n";
        // Verarbeiten Sie den Inhalt des Eintrags
    }
    echo "Alle Einträge wurden gelesen。\n";
    zip_close($zip);
}

In diesem Code kann das Programm in Bezug auf Zip_read () false zurückgegeben, dass alle Einträge durchquert wurden.

3. Vollständiges Beispiel

Hier ist eine Demonstration, die alle Einträge einer ZIP -Datei liest und den Namen und den Inhalt ausgibt:

 <?php
$zipFile = "http://m66.net/files/example.zip";

$zip = zip_open($zipFile);
if (!is_resource($zip)) {
    die("无法Offen ZIP dokumentieren:$zipFile\n");
}

while (($entry = zip_read($zip)) !== false) {
    $entryName = zip_entry_name($entry);
    echo "Eingabenname: $entryName\n";

    if (zip_entry_open($zip, $entry)) {
        $entrySize = zip_entry_filesize($entry);
        $content = zip_entry_read($entry, $entrySize);
        echo "Inhalt:\n$content\n";
        zip_entry_close($entry);
    } else {
        echo "无法Offen条目: $entryName\n";
    }
}

echo "Alle Einträge wurden gelesen。\n";
zip_close($zip);
?>

4. Zusammenfassung

  • ZIP_READ () gibt jedes Mal, wenn sie aufgerufen wird, die nächste Reißverschlusseintragsressource zurück und kehrt nach dem Lesen aller Einträge falsch zurück.

  • Um festzustellen, ob der letzte Eintrag gelesen wurde, überprüfen Sie einfach, ob der Rückgabewert von ZIP_READ () falsch ist.

  • Das Kombinieren von Zip_entry_open () und zip_entry_read () kann den Inhaltsinhalt lesen.

Mit den oben genannten Methoden können Sie alle Einträge der ZIP -Datei effizient und genau durchqueren und den Lesefortschritt beurteilen.