ZipArchive::open
PHP Manual
PHP Manual»ZipArchive»ZipArchive::open

ZipArchive::open

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

ZipArchive::open — Ouvre une archive ZIP

Description

public function ZipArchive::open(string $filename, int $flags = 0): bool|int

Ouvre une archive ZIP nouvelle ou pré-existante pour lecture, écriture et modification.

À partir de libzip 1.6.0, un fichier vide n'est plus une archive valide.

Note:

Lors de la création d'une nouvelle archive avec ZipArchive::CREATE, le fichier n'est réellement écrit sur le disque qu'au moment de l'appel à ZipArchive::close(). Par conséquent, les erreurs liées au système de fichiers (comme une permission refusée ou un dossier parent inexistant) ne seront signalées que lors de l'appel à ZipArchive::close(), et non lors de l'appel à cette méthode.

Liste de paramètres

filename

Le nom du fichier ZIP à ouvrir.

flags

Le mode à utiliser pour ouvrir l'archive.

Valeurs de retour

Retourne true en cas de succès, false ou un des codes d'erreur suivants :

ZipArchive::ER_EXISTS

Le fichier existe déjà.

ZipArchive::ER_INCONS

L'archive ZIP est incohérente.

ZipArchive::ER_INVAL

Argument invalide.

ZipArchive::ER_MEMORY

Échec de malloc.

ZipArchive::ER_NOENT

Le fichier n'existe pas.

ZipArchive::ER_NOZIP

N'est pas une archive ZIP.

ZipArchive::ER_OPEN

Impossible d'ouvrir le fichier.

ZipArchive::ER_READ

Erreur lors de la lecture.

ZipArchive::ER_SEEK

Erreur de position.

Exemples

Exemple #1 Ouverture et extraction

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
    echo 'ok';
    $zip->extractTo('test');
    $zip->close();
} else {
    echo 'échec, code:' . $res;
}
?>

Exemple #2 Création d'une archive

<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
    $zip->addFromString('test.txt', 'file content goes here');
    $zip->addFile('data.txt', 'nom_de_l_entree.txt');
    $zip->close();
    echo 'ok';
} else {
    echo 'échec';
}
?>

Exemple #3 Créer une archive temporaire

<?php
$name = tempnam(sys_get_temp_dir(), "FOO");
$zip = new ZipArchive;
$res = $zip->open($name, ZipArchive::OVERWRITE); /* truncate as empty file is not valid */
if ($res === TRUE) {
    $zip->addFile('data.txt', 'entryname.txt');
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>
To Top