¿Cómo comprimir una carpeta y descargarla usando php?

Tengo una carpeta llamada "datos". Esta carpeta de "datos" contiene un archivo "filecontent.txt" y otra carpeta llamada "Archivos". La carpeta "Archivos" contiene un archivo "info.txt". Por lo tanto, es una carpeta dentro de la estructura de carpetas.

Tengo que comprimir los "datos" de esta carpeta (usando php) junto con el archivo y la carpeta que contiene, y descargar el archivo comprimido.

He probado los ejemplos disponibles enhttp: //www.php.net/manual/en/zip.examples.ph Estos ejemplos no funcionaron. Mi versión de PHP es 5.2.10

Por favor ayuda

He escrito 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';
}
?>

archivo descargado pero no pudo descomprimir

Respuestas a la pregunta(5)

Su respuesta a la pregunta