Zipar arquivos com PHP

Nada melhor do que começar o nosso blog já postando algo bem útil. Muitos dos que cairão nesse post talvez nem estarão precisando, de fato, criar um arquivo zip, mas só em aprender, já abre a possibilidade para o surgimento de novas ideias. Pelo menos comigo é assim.

Vamos ao que interessa… o exemplo do nosso código. E vocês vão se surpreender com a facilidade pra fazer isso. Para esse tutorial, utilizaremos a classe “ZipArchive” que é nativa da versão 5 do PHP.


$zip = new ZipArchive();
$zip->open("arquivos/exemplo.zip", ZipArchive::OVERWRITE);
$zip->addFile(realpath("arquivos/foto1.jpg"), basename("arquivos/foto1.jpg"));
$zip->addFile(realpath("arquivos/foto2.jpg"), basename("arquivos/foto2.jpg"));
$zip->addFile(realpath("arquivos/foto3.jpg"), basename("arquivos/foto3.jpg"));
$zip->close();

Muito simples, não é verdade? Na primeira linha instanciamos a classe ZipArchive. Com isso, teremos o objeto em mãos para fazer as chamadas aos métodos.

$zip->open("arquivos/exemplo.zip", ZipArchive::OVERWRITE);
Aqui no método open, no primeiro parâmetro, passamos o nome de qual arquivo queremos abrir ou criar. Nesse exemplo, estamos dizendo que queremos criar o arquivo “exemplo.zip” dentro da pasta “arquivos”. No segundo parâmetro passamos a constante OVERWRITE, que significa que o arquivo será criado (caso ele não exista) ou substituído (caso já exista). Você pode conferir as outras opções de constantes clicando aqui.

$zip->addFile(realpath("arquivos/foto1.jpg"), basename("arquivos/foto1.jpg"));
$zip->addFile(realpath("arquivos/foto2.jpg"), basename("arquivos/foto2.jpg"));
$zip->addFile(realpath("arquivos/foto3.jpg"), basename("arquivos/foto3.jpg"));

Usamos o método addFile() para adicionarmos um arquivo dentro do zip. Nesse caso específico, estamos zipando 3 fotos. O primeiro parâmetro é o caminho absoluto para o arquivo e para isso fizemos uso da função realpath. No segundo parâmetro passamos o nome que o arquivo terá quando for zipado. Usando a função basename, todo o caminho é retirado e deixado apenas o nome do arquivo.

$zip->close();
Por fim, chamamos o método close(), que é responsável por fechar e salvar o arquivo.

Se você gostou do nosso código, por favor, não esqueça de deixar um comentário. Isso nos trará mais vontade ainda de sempre compartilharmos novas experiências aqui com vocês.

Possíveis buscas relacionadas:

  • Como zipar arquivos com PHP
  • Zipando arquivos com PHP
  • Compactar arquivos com PHP
  • Como compactar arquivos com PHP

1 comentário

  1. Cara testei com com o OVERWRITE, apesar de manual ele falar que cria o arquivo quando não existe um, ele não criou não, apenas funciona se já existe algum já criado.

    Reply

Leave a Comment.