Öffnet ein ZIP-Dateiarchiv

# ZipArchive::open

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::open — Öffnet ein ZIP-Dateiarchiv

### Beschreibung

public function ZipArchive::open(string `$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.

  - `ZipArchive::OVERWRITE`

  - `ZipArchive::CREATE`

  - `ZipArchive::RDONLY`

  - `ZipArchive::EXCL`

  - `ZipArchive::CHECKCONS`

### Rückgabewerte

Gibt bei Erfolg `true` zurück, bei einem Fehler `false` 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';
    }
    ?>

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open