ZipArchive::open

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

ZipArchive::openOuvre une archive ZIP

Description

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

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

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

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 ou un des code d'erreur suivant :

ZipArchive::ER_EXISTS
Le fichier existe déjà.
ZipArchive::ER_INCONS
L'archive ZIP est inconsistante.
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($nameZipArchive::OVERWRITE); /* truncate as empty file is not valid */
if ($res === TRUE) {
    
$zip->addFile('data.txt''entryname.txt');
    
$zip->close();
    echo 
'ok';
} else {
    echo 
'failed';
}
?>