ZipArchive::open
(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)
ZipArchive::open — Abre um arquivo compactado ZIP
Descrição
Abre um arquivo compactado ZIP novo ou existente para leitura, escrita ou modificação.
Desde o libzip 1.6.0, um arquivo vazio não é mais um arquivo compactado válido.
Parâmetros
filename
-
O nome do arquivo compactado ZIP a ser aberto.
flags
-
O modo a ser usado para abrir o arquivo compactado.
Valor Retornado
Retorna true
em caso de sucesso, false
ou um dos seguintes códigos de erro em caso de falha:
ZipArchive::ER_EXISTS
- Arquivo já existe.
ZipArchive::ER_INCONS
- Arquivo compactado inconsistente.
ZipArchive::ER_INVAL
- Argumento inválido.
ZipArchive::ER_MEMORY
- Falha ao alocar memória.
ZipArchive::ER_NOENT
- Arquivo não encontrado.
ZipArchive::ER_NOZIP
- Não é um arquivo compactado ZIP.
ZipArchive::ER_OPEN
- Não é possível abrir o arquivo.
ZipArchive::ER_READ
- Erro de leitura.
ZipArchive::ER_SEEK
- Erro de busca.
Exemplos
Example #1 Abrir e extrair
<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
echo 'ok';
$zip->extractTo('test');
$zip->close();
} else {
echo 'failed, code:' . $res;
}
?>
Example #2 Cria um arquivo
<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
$zip->addFromString('test.txt', 'o conteúdo do arquivo vai aqui');
$zip->addFile('data.txt', 'entryname.txt');
$zip->close();
echo 'ok';
} else {
echo 'falhou';
}
?>
Example #3 Cria um arquivo temporário
<?php
$name = tempnam(sys_get_temp_dir(), "FOO");
$zip = new ZipArchive;
$res = $zip->open($name, ZipArchive::OVERWRITE); /* truncar pois um arquivo vazio não é válido */
if ($res === TRUE) {
$zip->addFile('data.txt', 'nomedaentrada.txt');
$zip->close();
echo 'ok';
} else {
echo 'falhou';
}
?>