ZipArchive::addFile

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

ZipArchive::addFileAdiciona um arquivo a um arquivo ZIP a partir do caminho fornecido

Descrição

public ZipArchive::addFile(
    string $filepath,
    string $entryname = "",
    int $start = 0,
    int $length = ZipArchive::LENGTH_TO_END,
    int $flags = ZipArchive::FL_OVERWRITE
): bool

Adiciona um arquivo a um arquivo ZIP a partir de um caminho fornecido..

Note: Para portabilidade máxima, é recomendável sempre usar barras normais (/) como separador de diretório em nomes de arquivos ZIP.

Parâmetros

filepath

O caminho para o arquivo a ser adicionado.

entryname

Se fornecido e não vazio, este é o nome local dentro do arquivo ZIP que substituirá o filepath.

start

Para cópia parcial, posição de início.

length

Para cópia parcial, comprimento a ser copiado, se ZipArchive::LENGTH_TO_END (0) o tamanho do arquivo é usado, se ZipArchive::LENGTH_UNCHECKED o arquivo inteiro é usado (a partir de start).

flags

Máscara de bits consistindo de ZipArchive::FL_OVERWRITE, ZipArchive::FL_ENC_GUESS, ZipArchive::FL_ENC_UTF_8, ZipArchive::FL_ENC_CP437, ZipArchive::FL_OPEN_FILE_NOW. O comportamento dessas constantes é descrito na página de constantes ZIP.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão Descrição
8.0.0, PECL zip 1.18.0 flags foi adicionado.
8.3.0, PECL zip 1.22.1 ZipArchive::FL_OPEN_FILE_NOW foi adicionado.
8.3.0, PECL zip 1.22.2 ZipArchive::LENGTH_TO_END e ZipArchive::LENGTH_UNCHECKED foram adicionados.

Exemplos

Este exemplo abre um arquivo ZIP test.zip e adiciona o arquivo /caminho/para/index.txt. como newname.txt.

Example #1 Abrir e adicionar

<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
    $zip->addFile('/path/to/index.txt', 'newname.txt');
    $zip->close();
    echo 'ok';
} else {
    echo 'failed';
}
?>

Notas

Note:

Quando um arquivo é configurado para ser adicionado ao arquivo, o PHP irá bloquear o arquivo. O bloqueio é liberado apenas depois que o objeto ZipArchive foi fechado, seja via ZipArchive::close() ou o objeto ZipArchive sendo destruído. Isso pode impedir que você consiga excluir o arquivo sendo adicionado até depois que o bloqueio tenha sido liberado.

Veja Também