odd, легко:
<?php
include('zip.class.php');
$zip=new zip;
$zip->addFile('Текст файла','text.txt');
$zip->addFile('Ещё текст файла','papka/text2.txt');
$zip->addDir('papka2');
echo $zip->getZip();
?>
В итоге в браузер будет послан zip архив, в котором будут: файл text.txt, пустая папка papka2 и папка papka с файлом text2.txt внутри. Только нужно ещё заголовок перед этим послать в браузер, что мы именно зип архив отправляем, а не текст.
Вся сложность в том, что в php уже реализована основная функция gzcompress(), которая сжимает данные. Мой класс - это только как бы оболочка для создания зип архива из разных сжатых файлов. Реализацию этой функции придётся ещё где-то искать.