PHP 7.4.0RC4 Released!

ZipArchive::addGlob

(PHP 5 >= 5.3.0, PHP 7, PECL zip >= 1.9.0)

ZipArchive::addGlobAjoute des fichiers d'un dossier en utilisant un masque glob

Description

ZipArchive::addGlob ( string $pattern [, int $flags = 0 [, array $options = array() ]] ) : bool

Ajoute des fichiers d'un dossier qui correspondent à un masque glob pattern.

Note: Pour une portabilité maximale, il est recommandé de toujours utiliser des barres obliques (/) comme séparateur de dossier dans les noms de fichiers zip.

Liste de paramètres

pattern

Un masque glob().

flags

Un masque d'octets de drapeaux glob().

options

Un tableau associatif d'options. Les options disponibles sont :

  • "add_path"

    Préfixe à ajouter lors de la traduction du chemin local du fichier dans l'archive. Il sera appliqué après les opérations de suppression définies par l'option "remove_path" ou l'option "remove_all_path".

  • "remove_path"

    Préfixe à supprimer des chemins des fichiers avant de les ajouter à l'archive.

  • "remove_all_path"

    TRUE pour utiliser le nom du fichier uniquement, et ajouter les fichiers directement à la racine de l'archive.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

Exemples

Exemple #1 Exemple avec ZipArchive::addGlob()

Ajoute tous les scripts PHP et les fichiers textes du dossier courant.

<?php
$zip 
= new ZipArchive();
$ret $zip->open('application.zip'ZipArchive::CREATE ZipArchive::OVERWRITE);
if (
$ret !== TRUE) {
    
printf("A échoué avec le code d'erreur %d"$ret);
} else {
    
$options = array('add_path' => 'sources/''remove_all_path' => TRUE);
    
$zip->addGlob('*.{php,txt}'GLOB_BRACE$options);
    
$zip->close();
}
?>

Voir aussi

add a note add a note

User Contributed Notes 5 notes

up
4
Francesc Pineda Segarra
2 years ago
For me the better way seems to be:

$options = array('add_path' => DIRECTORY_SEPARATOR, 'remove_all_path' => TRUE);

On Windows uses \, on others /
up
6
johnsmith at na dot com
4 years ago
Neither 'remove_all_path' or 'remove_path' options seem to be workng
up
3
sunbinzzzzz at gmail dot com
2 years ago
Yes!! neither 'remove_all_path' or 'remove_path'  be working,if you want the right result,you should like this, $option = array( 'add_path' => '/', 'remove_all_path' => 'your path' );   'add_path' just give a '/', then you will (; 。
up
2
zckernel at gmail dot com
4 years ago
Doesn't work with the following options:
$options = array('remove_all_path' => TRUE);
$zipArchive->addGlob($path."/*", GLOB_BRACE, $options);

The full path to file is adding to the archive.

Works well if:
$options = array('add_path' => './','remove_all_path' => TRUE);
up
-1
sumariva at gmail dot com
4 years ago
As others suggested, to remove all paths, use the space as basepath.
Zip opened with builtin utility on a Windows XP and WinRAR.

$options = array('add_path' => ' ','remove_all_path' => TRUE);

Thanks for all contributers.
To Top