Bei der Verarbeitung komprimierter Dateien in PHP, zip_read () und zip_entry_read () sind zwei sehr nützliche Funktionen, mit denen wir den Inhalt von ZIP -Dateien lesen können. In diesem Artikel wird ausführlich erläutert, wie diese beiden Funktionen in Kombination verwendet werden, um den Inhalt jedes Eintrags im Reißverschluss -Paketelement nach Element zu lesen und auszugeben.
ZIP_READ (Ressource $ ZIP)
Diese Funktion akzeptiert eine offene ZIP -Ressource und gibt eine Ressource zurück, die auf einen ZIP -Eintrag zeigt, der den aktuellen Eintrag in ZIP darstellt. Wenn alle Einträge gelesen werden, wird False zurückgegeben.
ZIP_ENTRY_READ (Ressource $ zip_entry, int $ len = 1024)
Diese Funktion liest den Inhalt des aktuellen ZIP -Eintrags der angegebenen Länge. Die Ressourcen und die Anzahl der Bytes, die vom aktuellen ZIP -Eintrag gelesen werden sollen, müssen übergeben werden.
Der folgende Beispielcode zeigt, wie Sie eine ZIP -Datei öffnen, alle Einträge durchführen und den Inhalt jedes Eintrags ausgeben:
<?php
// Offen a Zip dokumentieren,Pfadbeispiel:http://m66.net/example.zip
$zip = zip_open('http://m66.net/example.zip');
if (!$zip) {
echo "Nicht öffnen können Zip dokumentieren。";
exit;
}
// Durchqueren Zip Alle Einträge in
while ($zip_entry = zip_read($zip)) {
// Holen Sie sich den Eintragsnamen
$entry_name = zip_entry_name($zip_entry);
echo "Einträge lesen: $entry_name\n";
// Öffnen Sie den aktuellen Eintrag, um den Inhalt zu lesen
if (zip_entry_open($zip, $zip_entry)) {
$content = '';
// 循环Einträge lesen内容,Vermeiden Sie zu große Inhalte, um auf einmal gelesen zu werden
while ($data = zip_entry_read($zip_entry, 1024)) {
$content .= $data;
}
// Ausgabeeintragsinhalt
echo "Der Inhalt ist wie folgt:\n";
echo $content . "\n";
// Schließen Sie den aktuellen Eintrag
zip_entry_close($zip_entry);
} else {
echo "Nicht öffnen können条目 $entry_name Lesen Sie lesen。\n";
}
echo "------------------------\n";
}
// Schließung Zip Ressource
zip_close($zip);
?>
Die Funktion zip_open () wird zum Öffnen von Zip -Dateien verwendet, unterstützt lokale Pfade oder kann eine Remote -URL sein (z. B. http://m66.net/example.zip im Beispiel).
Lesen Sie jeden Eintrag über ZIP_READ () Schleife.
Rufen Sie in jedem Eintrag ZIP_ENTRY_OPEN () an, um es zu öffnen, und verwenden Sie dann zip_entry_read (), um den Inhalt zu lesen. Hier werden 1024 Bytes jeweils gelesen und Schleife, bis der Inhalt fertig ist.
Schließen Sie nach dem Lesen den Eintrag und schließen Sie schließlich die gesamte Zip -Datei -Ressource.
Die Funktion Zip_read von PHP basiert auf der ZIP -Erweiterung, um sicherzustellen, dass die Erweiterung in Ihrer Umgebung aktiviert wurde.
Der Remote -URL -Zugriff erfordert, dass der Server erlaubt_url_fopen unterstützt.
Für große Dateien wird empfohlen, die Leseblockgröße vernünftig zu steuern, um Speicherüberlauf zu vermeiden.
Diese Methode eignet sich zum Lesen von Textdateien oder kleineren Binärdateien. Für komplexe Zip -Operationen können Sie in Betracht ziehen, die Ziparchive -Klasse zu verwenden.