Aktueller Standort: Startseite> Neueste Artikel> So verwenden Sie die Funktion von PHP von ZIP_READ (), um den nächsten Eintrag Schritt für Schritt in einer ZIP -Datei zu lesen?

So verwenden Sie die Funktion von PHP von ZIP_READ (), um den nächsten Eintrag Schritt für Schritt in einer ZIP -Datei zu lesen?

M66 2025-07-04

Die Verarbeitung komprimierter Dateien in PHP ist eine häufige Aufgabe, insbesondere bei der Behandlung von Packagdaten oder automatisierter Bereitstellung. Unter ihnen ist ZIP_READ () eine alte Schnittstelle von Ziparchive , mit der jeder Eintrag in einer ZIP -Datei durchquert wird. Obwohl diese Methode von der objektorientierten Ziparchive- Klasse immer mehr ersetzt wurde, hat ZIP_READ () unter bestimmten Projekten oder Kompatibilitätsanforderungen immer noch einen praktischen Wert.

In diesem Artikel werden tatsächliche Beispiele verwendet, um nach und nach zu demonstrieren, wie die Funktion zip_read () verwendet wird, um die Informationen jedes Eintrags in einer ZIP -Datei zu lesen.

1. Bereiten Sie eine Zip -Datei vor

Zuerst benötigen Sie eine ZIP -Datei, bei der es sich um eine Sammlung von Dateien handelt, z. B. ein komprimiertes Paket mit mehreren .txt -Dateien. Nehmen wir an, Sie haben bereits eine komprimierte Datei namens example.zip und platzieren Sie sie in das Serververzeichnis, zum Beispiel:

 /var/www/html/files/example.zip

2. Öffnen Sie die ZIP -Datei

PHP stellt die Funktion zip_open () zum Öffnen der ZIP -Datei und der Rückgabe eines Ressourcenhandels bereit. Dieser Griff wird für nachfolgende Lesereinträge verwendet.

 <?php
$zipPath = '/var/www/html/files/example.zip';
$zip = zip_open($zipPath);

if (is_resource($zip)) {
    echo "ZIP Datei erfolgreich öffnen。\n";
} else {
    echo "Nicht öffnen können ZIP dokumentieren。\n";
}
?>

3.. Verwenden Sie ZIP_READ (), um den Eintrag zu durchqueren

Sobald die ZIP -Datei geöffnet ist, können wir Zip_read () über jeden Eintrag dort iterieren. Hier ist der vollständige Lesevorgang:

 <?php
$zipPath = '/var/www/html/files/example.zip';
$zip = zip_open($zipPath);

if (is_resource($zip)) {
    while ($zipEntry = zip_read($zip)) {
        $entryName = zip_entry_name($zipEntry);
        echo "Entdecken Sie Einträge: " . $entryName . "\n";

        if (zip_entry_open($zip, $zipEntry, "r")) {
            $contents = zip_entry_read($zipEntry, zip_entry_filesize($zipEntry));
            echo "Inhaltsvorschau: " . substr($contents, 0, 100) . "\n\n";
            zip_entry_close($zipEntry);
        }
    }
    zip_close($zip);
} else {
    echo "Offen ZIP dokumentieren失败。\n";
}
?>

In diesem Code erhalten wir den aktuellen Eintrag über ZIP_READ () , dann den Dateinamen über ZIP_ENTRY_NAME () und lesen Sie den Dateiinhalt mit zip_entry_read () . Beachten Sie, dass hier, da einige Einträge möglicherweise binäre oder große Dateien sind, nur die ersten 100 Zeichen hier vorgestellt werden.

4. Ein Beispiel für ein praktisches Anwendungsszenario

Angenommen, Sie bieten eine Upload -Schnittstelle an, und die vom Benutzer hochgeladene ZIP -Datei wird vom Server dekomprimiert und prüft, ob der Inhalt legal ist. Sie können die Datei über zip_read () durchqueren und herausfinden, ob ein bestimmter Dateinamen wie config.json vorliegt:

 <?php
$zipPath = '/var/www/html/uploads/user_upload.zip';
$zip = zip_open($zipPath);
$foundConfig = false;

if (is_resource($zip)) {
    while ($zipEntry = zip_read($zip)) {
        if (zip_entry_name($zipEntry) === 'config.json') {
            $foundConfig = true;
            break;
        }
    }
    zip_close($zip);
}

if ($foundConfig) {
    echo "Im Upload -Paket enthalten config.json,Die Anforderungen erfüllen。\n";
} else {
    echo "Mangel config.json dokumentieren,Ungültiges Upload。\n";
}
?>

5. Dinge zu beachten

  • ZIP_READ () ist eine prozedurale alte Schnittstelle und wird empfohlen, Ziparchive in neuen Projekten zu verwenden.

  • Seien Sie in hohen Parallelitätsszenarien vorsichtig, wenn Sie Probleme mit dem Management von Ressourcenverhandlungen manuell betreiben, sollten Sie Probleme mit der Dateihandle -Veröffentlichung besonders gut sein.

  • Wenn Sie die Funktion "Web -Upload -Datei" verwenden, stellen Sie sicher, dass die relevanten Hochload -Größenbeschränkungen in php.ini ordnungsgemäß konfiguriert sind, z. B. upload_max_fileSize und post_max_size .

6. Schlussfolgerung

Obwohl ZIP_READ () eine ältere Funktion für PHP -ZIP -Betriebsbetrieb ist, hat es in einigen Szenarien immer noch Lern- und Nutzungswert. In den Beispielen in diesem Artikel haben Sie festgelernt, wie Sie die Funktion ZIP_READ () Schritt für Schritt verwenden, um jeden Eintrag in einer ZIP -Datei zu lesen und auf tatsächliche Projekte wie automatisierte Inhaltsüberprüfung, Upload -Dateiüberprüfung usw. anzuwenden.