Die Handhabung von Zip -komprimierten Paketen in PHP ist eine sehr häufige Aufgabe, insbesondere wenn komprimierte Dateien von Benutzern oder verpackten Datendateien hochgeladen werden. Ziparchive ist eine empfohlene Operationsklasse in modernen PHP, aber Funktionen wie zip_open und zip_read werden in bestimmten Szenarien oder in alten Versionen von PHP immer noch weit verbreitet. In diesem Artikel werden alle Einträge in einer ZIP -Datei über ZIP_OPEN und ZIP_READ vorgestellt und gelesen.
PHP bietet eine Reihe von zugrunde liegenden Funktionen zum Manipulieren von Postleitzahlen, einschließlich:
ZIP_OPEN ($ Dateiname) : Öffnen Sie eine ZIP -Datei und geben Sie ein Zip -Handle zurück.
ZIP_READ ($ ZIP) : Lesen Sie den nächsten Eintrag und geben Sie eine Eintragsressource zurück.
ZIP_ENTRY_NAME ($ Eintrag) : Holen Sie sich den Namen des Eintrags.
ZIP_ENTRY_OPEN ($ ZIP, $ Eintrag) : Öffnen Sie einen Eintrag.
ZIP_ENTRY_READ ($ Eintrag, $ Länge) : liest den Inhalt des geöffneten Eintrags.
ZIP_ENTRY_CLOSE ($ Eintrag) : Schließen Sie den aktuell geöffneten Eintrag.
Mit diesen Funktionen können wir in jedem komprimierten Paket auf Dateien zugreifen.
Hier ist ein vollständiges Beispiel, das zeigt, wie Sie diese Funktionen verwenden, um alle Einträge in einer ZIP -Datei zu lesen:
<Code> $ zipfile = '/path/to/your/archive.zip';$ zip = zip_open ($ zipfile);
if (is_resource ($ zip)) {
while ($ Eintrag = ZIP_READ ($ ZIP)) {
$ EintragName = zip_entry_name ($ Eintrag);
Echo "Reading Entry:". $ Eintragenname. Php_eol;
if (zip_entry_open($zip, $entry, "r")) {
$content = '';
while ($buffer = zip_entry_read($entry, 1024)) {
$content .= $buffer;
}
echo "Der Inhalt ist wie folgt:" . PHP_EOL;
echo $content . PHP_EOL;
zip_entry_close($entry);
} else {
echo "Einen Eintrag kann nicht geöffnet werden: " . $entryName . PHP_EOL;
}
}
zip_close($zip);
} anders {
Echo "Die Zip -Datei kann nicht öffnen". . Php_eol;
}
</code>
Interpretation des Benutzer -Hochladens komprimierter Pakete : Wenn der Benutzer beispielsweise einige Fotos oder Textdateien als komprimierte Pakete hochlädt, können wir die obige Methode verwenden, um den Inhalt jeder Datei zu lesen und auf dem Server zu speichern.
Lesen von Batch -Konfigurationsdateien : Einige automatisierte Bereitstellungssysteme verpacken mehrere Konfigurationsdateien in ZIP, und die erforderlichen Informationen können durch das Durchqueren von Lesen extrahiert werden.
Datenmigration und Sicherungswiederherstellung : Lesen Sie jedes Datenelement in der vom Sicherung komprimierten Datei und schreiben Sie an das Zielsystem.
Die mit ZIP_OPEN verwandte Funktion wird durch die ZIP -Erweiterung von PHP bereitgestellt, und Sie müssen sicherstellen, dass die Erweiterung in Ihrer PHP -Umgebung aktiviert ist.
Diese Funktionen eignen sich für eine einfache komprimierte Paketverarbeitung, und Ziparchive wird für verschlüsselte komprimierte Pakete oder komplexe Strukturen empfohlen.
Es wird empfohlen, dass die maximale lesende Lektüre von zip_entry_read auf 1024 oder einen anderen geeigneten Wert eingestellt wird, um übermäßigen Speicheraufwand zu verhindern.
Achten Sie bei Dateien, die von Benutzern hochgeladen wurden, vorsichtig mit der Verarbeitung von Pfaden und Inhalten, um ZIP -Geräteangriffe (Reißverschlussschlupf) zu verhindern.
Angenommen, es gibt ein komprimiertes Paket, das von vorne zur Serveradresse hochgeladen wurde:
<Code> https://m66.net/uploads/data.zip </code>Sie können es lokal speichern und diesen Code verwenden, um ihn zu verarbeiten und den Inhalt des komprimierten Pakets zu klassifizieren oder zu speichern.
Mit ZIP_OPEN und ZIP_READ bietet PHP eine niedrige, aber flexible Möglichkeit, Einträge in einer ZIP-Datei einzeln zu durchqueren. Obwohl Ziparchive in der modernen Entwicklung eher empfohlen wird, sind diese grundlegenden Funktionen in bestimmten bestimmten Umgebungen immer noch von praktischem Wert. Wenn Sie verstehen, wie es funktioniert, können Sie beim Umgang mit komprimierten Dateien mehr Kontrolle und Flexibilität erhalten.