ZipArchive::open
(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)
ZipArchive::open — Öffnet ein ZIP-Dateiarchiv
Beschreibung
$filename
, int $flags
= 0): bool|intÖffnet ein neues oder existierendes ZIP-Archiv für Lese-, Schreib- und Veränderungszugriffe.
Seit libzip 1.6.0 wird eine leere Datei nicht länger als gültiges Archiv angesehen.
Parameter-Liste
-
filename
-
Der Name des zu öffnenden ZIP-Archivs.
-
flags
-
Der Modus, in dem das zu öffnende Archiv verwendet werden soll.
Rückgabewerte
Gibt bei Erfolg true
zurück, oder einen der folgenden Fehlercodes:
-
ZipArchive::ER_EXISTS
- Die Datei existiert bereits.
-
ZipArchive::ER_INCONS
- Das Zip-Archiv ist inkonsistent.
-
ZipArchive::ER_INVAL
- Ungültiges Argument.
-
ZipArchive::ER_MEMORY
- Malloc-Fehler.
-
ZipArchive::ER_NOENT
- Keine solche Datei.
-
ZipArchive::ER_NOZIP
- Kein ZIP-Archiv.
-
ZipArchive::ER_OPEN
- Datei konnte nicht geöffnet werden.
-
ZipArchive::ER_READ
- Lesefehler.
-
ZipArchive::ER_SEEK
- Positionierungsfehler.
Beispiele
Beispiel #1 Öffnen und extrahieren
<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
echo 'ok';
$zip->extractTo('test');
$zip->close();
} else {
echo 'Fehler, Code:' . $res;
}
?>
Beispiel #2 Ein Archiv erstellen
<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
$zip->addFromString('test.txt', 'Der Dateiinhalt kommt hier');
$zip->addFile('data.txt', 'eintragsname.txt');
$zip->close();
echo 'ok';
} else {
echo 'Fehler';
}
?>
Beispiel #3 Erstellen eines temporären Archivs
<?php
$name = tempnam(sys_get_temp_dir(), "FOO");
$zip = new ZipArchive;
$res = $zip->open($name, ZipArchive::OVERWRITE); /* trunkieren, da eine leere Datei nicht gültig ist */
if ($res === TRUE) {
$zip->addFile('data.txt', 'eintragsname.txt');
$zip->close();
echo 'ok';
} else {
echo 'Fehler';
}
?>