There is a zip function in PHP but according to the manual, they suggest that you not use it because it's unmaintained.
Personally, I would execute a system command that zips up the files in question and give the user a link to the zip file you just created. You could delete it after 2 days... or you could serve the zip file out through a PHP script and delete it after it's been downloaded X times or X days, whichever comes first.