а можно сразу в архив это все пихать, в место того что я написал внизу кода, сделай так:
<?php
$directory_to_pack = dirname( __FILE__ ).'/!';
$tar = gzopen("mytar.tar.gz", "wb");
$files = getRecursiveDir( $directory_to_pack );
foreach( $files as $record ) {
TarAddHeader( $tar, $directory_to_pack.'/'.$record, $record );
TarWriteContents( $tar, $directory_to_pack.'/'.$record );
}
TarAddFooter( $tar );
gzclose( $tar );
?>
И все проблемы, на выходе получишь zlib архив