title: Creating and serving zipped files with php
body: <p>I'm trying to use the following code to create a zip file from a directory and serve it to the user via an http download:</p>
  
  <pre><code> // write the file
  file_put_contents($path . "/index.html", $output);
  
  // zip up the contents
  chdir($path);
  exec("zip -r {$course-&gt;name} ./");
  
  $filename = "{$course-&gt;name}.zip";
  
  header('Content-Type: application/octet-stream');
  header('Content-Disposition: attachment; filename=' .urlencode($filename));
  header('Content-Transfer-Encoding: binary');
  
  readfile($filename);
  </code></pre>
  
  <p>I am able to create the zip file, but downloading it over http is not working.  If I download the zip file that's created using an ftp client then Mac's Stuffit Expander unzips the files just fine, but if I download it over http, the mac unzipper creates an endless loop.  What I mean by this is say the file I download is called course.zip, then unzipping the file gives course.zip.cpgz and unzipping that file gives course.zip again..and on and on.</p>
  
  <p>Anyone have any ideas?</p>
  
  <p>Thanks!</p>