(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)
ZipArchive::addFile — Adiciona um arquivo a um arquivo ZIP a partir do caminho fornecido
$filepath
,$entryname
= "",$start
= 0,$length
= ZipArchive::LENGTH_TO_END,$flags
= ZipArchive::FL_OVERWRITEAdiciona um arquivo a um arquivo ZIP a partir de um caminho fornecido..
Nota: Para portabilidade máxima, é recomendável sempre usar barras normais (
/
) como separador de diretório em nomes de arquivos ZIP.
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.
Versão | Descrição |
---|---|
8.0.0 / 1.18.0 | flags foi adicionado. |
8.3.0 / 1.22.1 | ZipArchive::FL_OPEN_FILE_NOW foi adicionado. |
8.3.0 / 1.22.2 | ZipArchive::LENGTH_TO_END e ZipArchive::LENGTH_UNCHECKED foram adicionados. |
Este exemplo abre um arquivo ZIP test.zip e adiciona o arquivo /caminho/para/index.txt. como newname.txt.
Exemplo #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';
}
?>
Nota:
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.