# La clase ZipArchive

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

## Introducción

Un fichero, comprimido con Zip.

## Sinopsis de la Clase

class ZipArchive implements Countable {
/* Constantes */
public const int CREATE;
public const int EXCL;
public const int CHECKCONS;
public const int OVERWRITE;
public const int RDONLY;
public const int FL_NOCASE;
public const int FL_NODIR;
public const int FL_COMPRESSED;
public const int FL_UNCHANGED;
public const int FL_RECOMPRESS;
public const int FL_ENCRYPTED;
public const int FL_OVERWRITE;
public const int FL_LOCAL;
public const int FL_CENTRAL;
public const int FL_ENC_GUESS;
public const int FL_ENC_RAW;
public const int FL_ENC_STRICT;
public const int FL_ENC_UTF_8;
public const int FL_ENC_CP437;
public const int CM_DEFAULT;
public const int CM_STORE;
public const int CM_SHRINK;
public const int CM_REDUCE_1;
public const int CM_REDUCE_2;
public const int CM_REDUCE_3;
public const int CM_REDUCE_4;
public const int CM_IMPLODE;
public const int CM_DEFLATE;
public const int CM_DEFLATE64;
public const int CM_PKWARE_IMPLODE;
public const int CM_BZIP2;
public const int CM_LZMA;
public const int CM_LZMA2;
public const int CM_ZSTD;
public const int CM_XZ;
public const int CM_TERSE;
public const int CM_LZ77;
public const int CM_WAVPACK;
public const int CM_PPMD;
public const int ER_OK;
public const int ER_MULTIDISK;
public const int ER_RENAME;
public const int ER_CLOSE;
public const int ER_SEEK;
public const int ER_READ;
public const int ER_WRITE;
public const int ER_CRC;
public const int ER_ZIPCLOSED;
public const int ER_NOENT;
public const int ER_EXISTS;
public const int ER_OPEN;
public const int ER_TMPOPEN;
public const int ER_ZLIB;
public const int ER_MEMORY;
public const int ER_CHANGED;
public const int ER_COMPNOTSUPP;
public const int ER_EOF;
public const int ER_INVAL;
public const int ER_NOZIP;
public const int ER_INTERNAL;
public const int ER_INCONS;
public const int ER_REMOVE;
public const int ER_DELETED;
public const int ER_ENCRNOTSUPP;
public const int ER_RDONLY;
public const int ER_NOPASSWD;
public const int ER_WRONGPASSWD;
public const int ER_OPNOTSUPP;
public const int ER_INUSE;
public const int ER_TELL;
public const int ER_COMPRESSED_DATA;
public const int ER_CANCELLED;
public const int OPSYS_DOS;
public const int OPSYS_AMIGA;
public const int OPSYS_OPENVMS;
public const int OPSYS_UNIX;
public const int OPSYS_VM_CMS;
public const int OPSYS_ATARI_ST;
public const int OPSYS_OS_2;
public const int OPSYS_MACINTOSH;
public const int OPSYS_Z_SYSTEM;
public const int OPSYS_CPM;
public const int OPSYS_WINDOWS_NTFS;
public const int OPSYS_MVS;
public const int OPSYS_VSE;
public const int OPSYS_ACORN_RISC;
public const int OPSYS_VFAT;
public const int OPSYS_ALTERNATE_MVS;
public const int OPSYS_BEOS;
public const int OPSYS_TANDEM;
public const int OPSYS_OS_400;
public const int OPSYS_OS_X;
public const int OPSYS_DEFAULT;
public const int EM_NONE;
public const int EM_TRAD_PKWARE;
public const int EM_AES_128;
public const int EM_AES_192;
public const int EM_AES_256;
public const int EM_UNKNOWN;
public const string LIBZIP_VERSION;
/* Propiedades */
public readonly int $lastId;
public readonly int $status;
public readonly int $statusSys;
public readonly int $numFiles;
public readonly string $filename;
public readonly string $comment;
/* Métodos */
public addEmptyDir(string `$dirname`, int `$flags` = 0): bool
public addFile(
string `$filepath`,
string `$entryname` = "",
int `$start` = 0,
int `$length` = 0,
int `$flags` = ZipArchive::FL_OVERWRITE
): bool
public addFromString(string `$name`, string `$content`, int `$flags` = ZipArchive::FL_OVERWRITE): bool
public addGlob(string `$pattern`, int `$flags` = 0, array `$options` = []): array|false
public addPattern(string `$pattern`, string `$path` = ".", array `$options` = []): array|false
public clearError(): void
public close(): bool
public count(): int
public deleteIndex(int `$index`): bool
public deleteName(string `$name`): bool
public extractTo(string `$pathto`, array|string|null `$files` = `null`): bool
public getArchiveComment(int `$flags` = 0): string|false
public getArchiveFlag(int `$flag`, int `$flags` = 0): int
public getCommentIndex(int `$index`, int `$flags` = 0): string|false
public getCommentName(string `$name`, int `$flags` = 0): string|false
public getExternalAttributesIndex(
int `$index`,
int `&$opsys`,
int `&$attr`,
int `$flags` = 0
): bool
public getExternalAttributesName(
string `$name`,
int `&$opsys`,
int `&$attr`,
int `$flags` = 0
): bool
public getFromIndex(int `$index`, int `$len` = 0, int `$flags` = 0): string|false
public getFromName(string `$name`, int `$len` = 0, int `$flags` = 0): string|false
public getNameIndex(int `$index`, int `$flags` = 0): string|false
public getStatusString(): string
public getStream(string `$name`): resource|false
public getStreamIndex(int `$index`, int `$flags` = 0): resource|false
public getStreamName(string `$name`, int `$flags` = 0): resource|false
public static isCompressionMethodSupported(int `$method`, bool `$enc` = `true`): bool
public static isEncryptionMethodSupported(int `$method`, bool `$enc` = `true`): bool
public locateName(string `$name`, int `$flags` = 0): int|false
public open(string `$filename`, int `$flags` = 0): bool|int
public registerCancelCallback(callable `$callback`): bool
public registerProgressCallback(float `$rate`, callable `$callback`): bool
public renameIndex(int `$index`, string `$new_name`): bool
public renameName(string `$name`, string `$new_name`): bool
public replaceFile(
string `$filepath`,
int `$index`,
int `$start` = 0,
int `$length` = 0,
int `$flags` = 0
): bool
public setArchiveComment(string `$comment`): bool
public setArchiveFlag(int `$flag`, int `$value`): bool
public setCommentIndex(int `$index`, string `$comment`): bool
public setCommentName(string `$name`, string `$comment`): bool
public setCompressionIndex(int `$index`, int `$method`, int `$compflags` = 0): bool
public setCompressionName(string `$name`, int `$method`, int `$compflags` = 0): bool
public setEncryptionIndex(int `$index`, int `$method`, ?string `$password` = `null`): bool
public setEncryptionName(string `$name`, int `$method`, ?string `$password` = `null`): bool
public setExternalAttributesIndex(
int `$index`,
int `$opsys`,
int `$attr`,
int `$flags` = 0
): bool
public setExternalAttributesName(
string `$name`,
int `$opsys`,
int `$attr`,
int `$flags` = 0
): bool
public setMtimeIndex(int `$index`, int `$timestamp`, int `$flags` = 0): bool
public setMtimeName(string `$name`, int `$timestamp`, int `$flags` = 0): bool
public setPassword(string `$password`): bool
public statIndex(int `$index`, int `$flags` = 0): array|false
public statName(string `$name`, int `$flags` = 0): array|false
public unchangeAll(): bool
public unchangeArchive(): bool
public unchangeIndex(int `$index`): bool
public unchangeName(string `$name`): bool
}

## Propiedades

lastId

  Valor de índice de la última entrada añadida (archivo o directorio). Disponible para archivo cerrado, a partir de PHP 8.0.0 y PECL zip 1.18.0.

status

  Estado del archivo Zip. Disponible para archivo cerrado, a partir de PHP 8.0.0 y PECL zip 1.18.0.

statusSys

  Estado del sistema del archivo Zip. Disponible para archivo cerrado, a partir de PHP 8.0.0 y PECL zip 1.18.0.

numFiles

  Número de ficheros en el archivo

filename

  Nombre del archivo en le sistema de archivos

comment

  Comentario para el archivo

## Tabla de contenidos

- ZipArchive::addEmptyDir — Añadir un nuevo directorio
- ZipArchive::addFile — Añade un fichero al archivo ZIP para la ruta dada
- ZipArchive::addFromString — Añadir un fichero al archivo ZIP usando su contenido
- ZipArchive::addGlob — Añadir ficheros de un directorio mediante un patrón glob
- ZipArchive::addPattern — Añade ficheros de un directorio a partir de un patrón PCRE
- ZipArchive::clearError — Clear the status error message, system and/or zip messages
- ZipArchive::close — Cierra el fichero activo (abierto o el nuevo creado)
- ZipArchive::count — Cuenta el número de archivos en el archivo
- ZipArchive::deleteIndex — Elimina una entrada en el archivo usando su índice
- ZipArchive::deleteName — Elimina una entrada en el archivo por su nombre
- ZipArchive::extractTo — Extraer el contenido del archivo
- ZipArchive::getArchiveComment — Devuelve el comentario del archivo ZIP
- ZipArchive::getArchiveFlag — Returns the value of a Zip archive global flag
- ZipArchive::getCommentIndex — Devuelve el comentario de una entrada usando la entrada díndice
- ZipArchive::getCommentName — Devuelve el comentario de una entrada usando el nombre de la entrada
- ZipArchive::getExternalAttributesIndex — Obtener los atributos externos de una entrada definida por su índice
- ZipArchive::getExternalAttributesName — Obtener los atributos externos de una entrada definida por su nombre
- ZipArchive::getFromIndex — Devuelve el contenido de la entrada usando su índice
- ZipArchive::getFromName — Devuelve el contenido de la entrada utilizando su nombre
- ZipArchive::getNameIndex — Devuelve el nombre de una entrada utilizando su índice
- ZipArchive::getStatusString — Devuelve mensajes de: estado de error, de sistema y/o mensajes de zip
- ZipArchive::getStream — Obtener un manejador de fichero para la entrada definido por su nombre (sólo lectura)
- ZipArchive::getStreamIndex — Get a file handler to the entry defined by its index (read only)
- ZipArchive::getStreamName — Get a file handler to the entry defined by its name (read only)
- ZipArchive::isCompressionMethodSupported — Check if a compression method is supported by libzip
- ZipArchive::isEncryptionMethodSupported — Check if a encryption method is supported by libzip
- ZipArchive::locateName — Devuelve el índice de la entrada en el archivo
- ZipArchive::open — Abrir un fichero de archivo en formato ZIP
- ZipArchive::registerCancelCallback — Registrar una llamada para permitir la cancelación durante el cierre del archivo
- ZipArchive::registerProgressCallback — Registra una llamada para proporcionar actualizaciones durante el cierre del archivo
- ZipArchive::renameIndex — Renombra una entrada definida por su índice
- ZipArchive::renameName — Renombra una entrada definida por su nombre
- ZipArchive::replaceFile — Reemplaza fichero en el archivo ZIP con una ruta determinada
- ZipArchive::setArchiveComment — Establece el comentario de un archivo ZIP
- ZipArchive::setArchiveFlag — Set a global flag of a ZIP archive
- ZipArchive::setCommentIndex — Establece el comentario de una entrada definido por su índice
- ZipArchive::setCommentName — Establece el comentario de una entrada definido por su nombre
- ZipArchive::setCompressionIndex — Establecer el método de compresión de una entrada definida por su índice
- ZipArchive::setCompressionName — Establecer el método de compresión de una entrada definida por su nombre
- ZipArchive::setEncryptionIndex — Establece el método de cifrado de una entrada definida por su índice
- ZipArchive::setEncryptionName — Establece el método de cifrado de una entrada definida por su nombre
- ZipArchive::setExternalAttributesIndex — Establece los atributos externos de una entrada definida por su índice
- ZipArchive::setExternalAttributesName — Establece los atributos externos de una entrada definida por su nombre
- ZipArchive::setMtimeIndex — Establece el tiempo de modificación de una entrada definido por su índice
- ZipArchive::setMtimeName — Establece la hora de modificación de una entrada definida por su nombre
- ZipArchive::setPassword — Establece la contraseña para el archivo activo
- ZipArchive::statIndex — Obtiene los detalles de una entrada definida por su índice
- ZipArchive::statName — Obtener los detalles de una entrada definida por su nombre
- ZipArchive::unchangeAll — Deshacer todos los cambios hechos en el archivo
- ZipArchive::unchangeArchive — Revertir todos los cambios globales hechos en el archivo
- ZipArchive::unchangeIndex — Revertir todos los cambios hechos a una entrada en el índice dado
- ZipArchive::unchangeName — Deshace todos los cambios realizados a una entrada con un nombre dado