Aktueller Standort: Startseite> Neueste Artikel> Wie Verwende ich die Funktion von PHP von ZIP_READ (), um das Lesen und Extrahieren jeder Datei in einer ZIP -Datei einzeln zu implementieren?

Wie Verwende ich die Funktion von PHP von ZIP_READ (), um das Lesen und Extrahieren jeder Datei in einer ZIP -Datei einzeln zu implementieren?

M66 2025-06-23

Die Handhabung von Zip -komprimierten Dateien in PHP ist eine gemeinsame Aufgabe, insbesondere bei der Behandlung von Upload -Dateien oder automatischen Archiven. Die ZIP -Erweiterung von PHP bietet einen vollständigen API -Satz für die Manipulation von Zip -Dateien, wobei Zip_read () eine Schlüsselfunktion ist, mit der Einträge in ZIP -Dateien durchlaufen werden. In diesem Artikel wird gezeigt, wie die Funktion zip_read () verwendet wird, um jeden Dateiinhalt in einer ZIP -Datei einzeln zu lesen und zu extrahieren.

1. Umweltvorbereitung

Stellen Sie vor Beginn sicher, dass Ihre PHP -Umgebung eine Zip -Erweiterung aktiviert hat. Sie können prüfen, ob es aktiviert ist durch:

 <?php
phpinfo();
?>

Suchen Sie auf der Seite nach Reißverschluss , wenn es existiert, ist es aktiviert. Wenn nicht, installieren Sie und aktivieren Sie die Erweiterung gemäß Ihrem Betriebssystem.

2. Grundprozessübersicht

Die grundlegenden Schritte bei der Verwendung von ZIP_READ () sind wie folgt:

  1. Verwenden Sie Zip_open () , um die ZIP -Datei zu öffnen.

  2. Verwenden Sie ZIP_READ (), um jeden Eintrag zu durchqueren.

  3. Verwenden Sie ZIP_ENTRY_NAME (), um den Eintragsnamen zu erhalten.

  4. Verwenden Sie zip_entry_open () und zip_entry_read (), um den Inhaltsinhalt zu lesen.

  5. Optional: Schreiben Sie den Inhalt des Lesens in die Datei, um den Extraktionsvorgang durchzuführen.

3. Probencodeanalyse

Hier ist ein vollständiges Beispiel für das Lesen und Extrahieren jeder Datei in der ZIP -Datei einzeln in das angegebene Verzeichnis:

 <?php

$zipFile = 'archive.zip'; // Angenommen, die Datei befindet sich im aktuellen Verzeichnis
$extractTo = 'extracted_files/';

// Stellen Sie sicher, dass das Zielverzeichnis existiert
if (!is_dir($extractTo)) {
    mkdir($extractTo, 0755, true);
}

// Offen ZIP dokumentieren
$zip = zip_open($zipFile);

if (is_resource($zip)) {
    while ($zipEntry = zip_read($zip)) {
        $entryName = zip_entry_name($zipEntry);
        $entryPath = $extractTo . $entryName;

        // Verzeichniseinträge ignorieren,仅处理dokumentieren
        if (substr($entryName, -1) === '/') {
            continue;
        }

        // 尝试Offen条目
        if (zip_entry_open($zip, $zipEntry, "r")) {
            $entryContent = zip_entry_read($zipEntry, zip_entry_filesize($zipEntry));

            // Stellen Sie sicher, dass die Verzeichnisstruktur vorliegt
            $dir = dirname($entryPath);
            if (!is_dir($dir)) {
                mkdir($dir, 0755, true);
            }

            // 写入到dokumentieren
            file_put_contents($entryPath, $entryContent);

            // Optional:输出当前处理的dokumentieren
            echo "已提取dokumentieren: $entryName<br>";
            zip_entry_close($zipEntry);
        }
    }
    zip_close($zip);
    echo "ZIP dokumentieren处理完成。";
} else {
    echo "无法Offen ZIP dokumentieren。";
}
?>

4.. Dinge zu beachten

  • ZIP_READ () liest jeweils einen Eintrag und muss in der Schleife mehrmals aufgerufen werden, um alle Einträge zu lesen.

  • Verwenden Sie ZIP_ENTRY_FILESIZE (), um die Dateigröße zum Lesen des vollständigen Inhalts zu erhalten.

  • Sie müssen zip_entry_open () verwenden, um den Inhalt eines Eintrags zu lesen.

  • Wenn in der ZIP -Datei mehrere Verzeichnisschichten vorhanden sind, stellen Sie sicher, dass die Verzeichnisstruktur vor der Extraktion vorhanden ist.

5. Beispiele für Anwendungsszenarien

  1. Online-Dokument Dekompressionsverarbeitung : Dekomprimiert automatisch in das serverspezifische Verzeichnis nach dem Hochladen des komprimierten Pakets.

  2. Batch -Bildverarbeitung : Entpacken Sie die Bilder in der vom Benutzer hochgeladenen ZIP -Datei und speichern Sie sie für die nachfolgende Verarbeitung im / Uploads / Verzeichnis.

  3. Inhaltssicherung und Wiederherstellung : Das System packt automatisch die Datensicherung und unterstützt die Extraktion und Wiederherstellung von Datei-by-Dateien.

6. Erweiterte Lesung