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.