Vídeo aula: Compactar e descompactar arquivos com PHP

Canal: PHP  |  Autor: Nícolas Müller  |  Publicado em: 07/01/2009  |  Views: 3.866
Muitos vêm solicitando mais tutoriais em programação, eis que acatamos a vossa vontade, afinal sua voz é lei para o site. Neste tutorial vou mostrar como criar arquivos em formato zip, e como descompactá-los.

Juntamente com o vídeo, vou mostrar o tutorial em texto para que você possa copiar o código, que também terá um arquivo com todos para download no final deste.

A parte de compactar vamos usar a classe zip.lib.php que está disponível juntamente no arquivo para download aqui neste artigo.

O código de criar o arquivo:

<?php

  //Start Output buffering
  ob_start();

  //Load the Library
  require("./zip.lib.php");

  //Generate a new object
  $zipfile = new zipfile("archive.zip","./DeepDir.php", "./extendedfpdf.php");

  //Add a folder
  #$zipfile->addDirContent("./");

  //Add a single file
  $zipfile->addFileAndRead("teste/foto.jpg");

  //Output the new zip file
  echo $zipfile->file();

?>


Abaixo o vídeo explicativo, e exemplo de uso:



Extrair os arquivos:

Para extrair os arquivos, vamos utilizar a classe padrão do PHP, conforme o código abaixo:

<?php
$zip = new ZipArchive;
if ($zip->open("archive.zip") === TRUE) {
    $zip->extractTo("./data/");
    $zip->close();
    echo "ok";
} else {
    echo "failed";
}
?>


Abaixo o vídeo explicativo e exemplo de uso:

Creative Commons Esta obra está licenciada sob uma Licença Creative Commons. Você pode copiar, distribuir, exibir, executar, desde que seja dado crédito ao autor original (Citando nome do autor, data, local e link de onde tirou o texto). Você não pode fazer uso comercial desta obra. Você não pode criar obras derivadas.
Vote no artigo:

Compartilhe:

[x] Fechar Preencha os campos abaixo para indicar esta página:
Seu nome:
Seu e-mail:
Nome do indicado:
E-mail do indicado:
Deixe uma mensagem:
Anti-spam:

(nova imagem)
Preencha o que vê:
Twitter diHITT Facebook delicious envie por e-mail comentar

comentarComentários:

Preencha o formulário para comentar:

[x] Fechar
Nome:*
E-mail:* (não será exibido)
Site: (http://)
Comentário:*
Anti-spam:

(nova imagem)
Preencha o que vê:

Deseja receber as respostas dos comentários

Paulo
Publicado em:
22/01/2009 - 13:19
Paulo
Kra, só uma pergunta... no caso essa pagina esta rodando em localhost, si eu hospedar ela, ainda é possivel compactar arquivos de uma maquina que esteja acessando.... tipo (Eu tenho um arquivo no meu drive C:\teste.txt a pagina já zipa esse arquivo e manda pro servidor para fazer download)?

Abrç
Will Fernando
Publicado em:
14/04/2009 - 09:59
Will Fernando
NOTA 10 ! simples e funcional ...
Marcello Pedrosa
Publicado em:
11/05/2009 - 10:11
Marcello Pedrosa
Simples, direto e objetivo.

Mostrando as duas formas tanto para 1 arquivo quando para um diretório!

Parabéns!
Nicolas
Publicado em:
29/09/2009 - 17:24
Nicolas
Valeu pessoal. Se quiserem algumas outras vídeo-aulas, podem pedir pelos comentários que vamos fazer, indiquem e participem, quem ganha são vocês :D
Christian
Publicado em:
05/11/2009 - 00:51
Christian
Vlw mesmo, seu script funcionou 100% no UOLHOST. Pelo painel de controle é bloqueado descompactar arquivos grandes.
Alan Cleber Borim
Publicado em:
12/11/2009 - 16:00
Como eu faço, por exemplo, mando um monte de localizações de fotos diferentes, que estão localizadas em um outro diretório, como faço pra compactar todos os marcados sem compactar o diretório todo.
Diogo Barros
Publicado em:
22/12/2009 - 19:09
Diogo Barros
Ótimo esse artigo, vc esta realmente de parabéns por abordar esse assunto.

Agora sempre pedindo mais rsrsrs, tem como realizar uma contagem de quantos arquivos existem dentre do .zip e listar o nome deles?

Abraço.