ZipArchive::addGlob

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

ZipArchive::addGlobAñadir ficheros de un directorio mediante un patrón glob

Descripción

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

Añade ficheros de un directorio que corresponde con el patrón global pattern.

Parámetros

pattern

Un patrón glob()contra el cual se hará la correspondencia con los ficheros.

flags

Una máscara de un bit de marcas glob().

options

Un array asociativo de opciones. Las opciones disponibles son:

  • "add_path"

    Prefijo a indicar cuando se traduce la ruta de acceso del fichero dentro del archivo. Esta traducción se aplica después de cualquier operación de eliminación definida por las opciones "remove_path" o "remove_all_path" .

  • "remove_path"

    Prefijo para eliminar la ruta de acceso de los ficheros antes de añadirlos al archivo.

  • "remove_all_path"

    true para utilizar únicamente el nombre del fichero y añadirlo a la raíz del archivo.

Valores devueltos

Devuelve true en caso de éxito o false en caso de error.

Ejemplos

Ejemplo #1 Ejemplo con ZipArchive::addGlob()

Añadir todos los ficheros de scripts y texto php del directorio de trabajo actual

<?php
$zip 
= new ZipArchive();
$ret $zip->open('application.zip'ZipArchive::OVERWRITE);
if (
$ret !== TRUE) {
    
printf('Erróneo con el código %d'$ret);
} else {
    
$options = array('add_path' => 'sources/''remove_all_path' => TRUE);
    
$zip->addGlob('*.{php,txt}'GLOB_BRACE$options);
    
$zip->close();
}
?>

Ver también

add a note add a note

User Contributed Notes 5 notes

up
3
Francesc Pineda Segarra
7 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
4
johnsmith at na dot com
9 years ago
Neither 'remove_all_path' or 'remove_path' options seem to be workng
up
1
sunbinzzzzz at gmail dot com
7 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
1
zckernel at gmail dot com
9 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
9 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