=

Daschmi's Notizblog

RSS Feed

Verzeichnisse mit PHP rekursiv zippen

Erstellt in PHP am 22. September 2012

Um Verzeichnisse rekursiv zu einem Zip Archiv hinzuzufügen kann folgendes Script verwendet werden:

public function zipDir(&$zip, $dir, $base = “)
{
  if (!file_exists($dir));
  $arFiles = scandir($dir);

  foreach ($arFiles as $file)
  {

    if (in_array($file, array(‚.‘, ‚..‘))) continue;

    if (is_file($dir.’/‘.$file))
    {

      $zip->addFile($dir.’/‘.$file, $base.$file);

    }
    else if (is_dir($dir.’/‘.$file))
    {

      $zip->addEmptyDir($base.$file);
      zipDir($zip, $dir.’/‘.$file, $base.$file.’/‘);

    }
  }
}

Der Aufruf kann dann wie folgt aussehen:

$tmpzip = tempnam("/tmp", "wpShopGermany");

$zip = new ZipArchive;
$res = $zip->open($tmpzip, ZipArchive::CREATE);

// Verzeichnisse
zipDir($zip, ‚/var/home/htdocs/wpShopGermany/wp-content/uploads/wpsg_produktbilder‘, ‚wpsg_produktbilder/‘);

$zip->close();

header("Cache-Control: private");
header(‚Content-Type: application/download; charset=utf-8‘);
header(‚Content-Disposition: filename=wpsg_upgrade.zip‘);
header("Pragma: public");

session_cache_limiter(’nocache‘);

die(file_get_contents($tmpzip));

Das Zip Archiv würde dabei direkt als Download an den Browser übergeben werden.



Bitte genehmigen Sie die Verwendung von Cookies dieser Website! Mehr Informationen

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close