PHP – Compactar arquivos

Este script compacta o diretório onde ele se econtra:

<?php
$directory = dirname(__FILE__); //diretorio para compactar
$zipfile = 'backup.zip'; // nome do zip gerado

// Array de arquivos
$filenames = array();

// Lê os arquivos
browse($directory);

// cria zip, adiciona arquivos...
$zip = new ZipArchive();
if ( $zip->open($zipfile, ZIPARCHIVE::CREATE) !== TRUE )
{
    exit("Não pode abrir: <$zipfile>\n");
}

foreach ($filenames as $filename)
{
    $file = $filename;
    $arquivo = substr($file, -3);
    $zip->addFile($filename,$filename);
}

echo "Total de arquivos: <b>" . $zip->numFiles . "</b>\n";
echo "Status:" . $zip->status . "\n";
$zip->close();

function browse($dir)
{
    global $filenames;
    if ($handle = opendir($dir))
    {
        while (false !== ($file = readdir($handle)))
        {
            if ($file != "." && $file != ".." && is_file($dir.'/'.$file))
            {
                $filenames[] = $dir.'/'.$file;
            }
            else if ($file != "." && $file != ".." && is_dir($dir.'/'.$file))
            {
                browse($dir.'/'.$file);
            }
        }
        closedir($handle);
    }

    return $filenames;
}
?>
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s