Zitat Zitat von php-Manual
gzcompress -- Compress a string
String != Datei.
Dein Script sendet einen komprimierten String mit falschen Headerinformationen an den Browser.
Geb mir 'n paar Minuten, ich google mal etwas. Mal schaun ob sich da eine Lösung findet.

UPDATE:
Lies die Comments zur Funktion auf php.net:
http://de3.php.net/gzcompress

EDIT: Hajo... du wolltest ja einen ganzen Ordner packen und komprimieren. ich fürchte darauf ist gzcompress nicht ausgelegt und ich wüsste auch nix von einer implementierten Funktion in PHP die das könnte.
Wenn du das auf einem eigenen Server tun willst, schau mal was mit exec() machbar ist.
exec("zip -r /zielpfad/zieldatei /quellpfad/quellordner/");
Auf einem Linuxsystem mit installiertem "zip".