Como compactar uma pasta e fazer o download usando php?

Tenho uma pasta chamada "data". Esta pasta "dados" contém um arquivo "filecontent.txt" e outra pasta chamada "Arquivos". A pasta "Arquivos" contém um arquivo "info.txt". Portanto, é uma pasta dentro da estrutura de pasta

Preciso compactar esta pasta "dados" (usando php) junto com o arquivo e a pasta dentro dela e fazer o download do arquivo compactad

Tentei os exemplos disponíveis emhttp: //www.php.net/manual/en/zip.examples.ph Estes exemplos não funcionaram. Minha versão do PHP é 5.2.10

Por favor ajude

Escrevi este código.

<?php
$zip = new ZipArchive;
if ($zip->open('check/test2.zip',ZIPARCHIVE::CREATE) === TRUE) {
    if($zip->addEmptyDir('newDirectory')) {
        echo 'Created a new directory';
    } else {
        echo 'Could not create directory';
    }
    $zipfilename="test2.zip";
    $zipname="check/test2.zip";

    header('Content-Type: application/zip');
    header('Content-disposition: attachment; filename=check/test1.zip');    //header('Content-Length: ' . filesize( $zipfilename));
    readfile($zipname);  //$zip->close(); } else { echo failed';
}
?>

file baixado, mas não foi possível descompactar

questionAnswers(5)

yourAnswerToTheQuestion