In PHP kann bei der Verarbeitung von Zip -Dateien die Funktion zip_read verwendet werden, um jeden Dateieintrag in der ZIP -Datei zu lesen. Durch diese Funktion können wir den Inhalt in der ZIP -Datei nacheinander lesen und den Leseinhalt vorübergehend verarbeiten, z. B. Verschlüsselung oder Cache -Vorgänge. In diesem Artikel wird detailliert eingeführt, wie diese Funktionen in Kombination mit der Funktion zip_read implementiert werden.
Bevor Sie die Funktion zip_read verwenden, müssen Sie sicherstellen, dass PHP die ZIP -Erweiterung installiert und aktiviert hat. Sie können es überprüfen durch:
<?php
if (class_exists('ZipArchive')) {
echo "ZipErweiterung aktiviert";
} else {
echo "Bitte aktivierenZipErweitert";
}
?>
Die Funktion ZIP_READ wird verwendet, um den nächsten Eintrag in einer Zip -Ressource zu lesen. In Verbindung mit ZIP_OPEN und ZIP_ENTRY_READ können Sie alle Dateien in der ZIP -Datei durchqueren.
Typische Verwendungsbeispiele sind wie folgt:
<?php
$zip = zip_open('http://m66.net/path/to/file.zip');
if (is_resource($zip)) {
while ($entry = zip_read($zip)) {
$name = zip_entry_name($entry);
zip_entry_open($zip, $entry);
$content = zip_entry_read($entry, zip_entry_filesize($entry));
zip_entry_close($entry);
// Hier ist es in Ordnung$contentVerarbeitung durchführen,Zum Beispiel Verschlüsselung oder Cache
}
zip_close($zip);
}
?>
Angenommen, wir möchten eine einfache AES -Verschlüsselung auf dem, was wir lesen, ausführen. Der Beispielcode lautet wie folgt:
<?php
$cacheDir = '/tmp/zip_cache/';
if (!is_dir($cacheDir)) {
mkdir($cacheDir, 0755, true);
}
$zip = zip_open('http://m66.net/path/to/file.zip');
if (is_resource($zip)) {
while ($entry = zip_read($zip)) {
$name = zip_entry_name($entry);
$cacheFile = $cacheDir . md5($name) . '.cache';
if (file_exists($cacheFile)) {
$content = file_get_contents($cacheFile);
} else {
zip_entry_open($zip, $entry);
$content = zip_entry_read($entry, zip_entry_filesize($entry));
zip_entry_close($entry);
file_put_contents($cacheFile, $content);
}
// Hier$contentDas heißt, der zwischengespeicherte Inhalt,Kann die Verarbeitung fortsetzen
}
zip_close($zip);
}
?>