Como criar arquivos ZIP em PHP e extraí-los

12 de dezembro de 2014 turboajuda 2 min

Uma forma simples de criar e extrair arquivos ZIP. Você pode utilizá-la para Backup, compactar arquivos para downloads e até mesmo agrupar diversos arquivos para seu cliente, facilitando a vida deles.

Criamos 2 funções muito simples, uma para criar o arquivo compactado que aceita 2 parâmetros, um array dos arquivos e outro para o nome do arquivo que será gerado e outra para extrair os arquivos, que também recebe 2 parâmetros, um para dizer qual será o arquivo que deve ser descompactado e a outra, o local onde deverá ser descompactado.

 

Resumo:

  • Criando a função para Compactar ( createZipFile )
  • Utilização da função createZipFile
  • Criando a função para descompactar ( extractZipFile )
  • Utilização da função extractZipFile

 

Criando a função para Compactar:

function createZipFile($f = array(),$fileName){
	$zip = new ZipArchive();
	$zip->open("$fileName.zip", ZipArchive::CREATE);
	foreach($f as $file){
		$zip->addFile($file);
	}
	$zip->close();
}

Utilização:

$f = array(
	'arquivo1.pdf',
	'arquivo2.pdf',
	'planilha1.pdf',
	'planilha2.pdf',
	'backup/banco.sql'
);

$fileName = 'arquivos-compactados';
createZipFile($f,$fileName);

 

Criando a função para descompactar

function extractZipFile($origem,$destino){

	$zipFile = new ZipArchive;
	$openFile = $zipFile->open($origem);

	if ($openFile === TRUE) {
		$zipFile->extractTo($destino);
		$zipFile->close();
		echo 'Arquivos extraídos com sucesso.';
	} else {
		echo 'Extração dos arquivos falhou.';
	}
} 

Extraindo os arquivos:

$origem = "arquivos-compactados.zip";
$destino = "extrair/";
echo extractZipFile($origem,$destino);

 

Esperamos que tenham gostado deste mini tutorial, válido e prático, quem quiser deixar o código mais enxuto, poste nos comentários que iremos publicar.