Roni: mehrere Dateien zippen in ein zippfile

Hallo Zusammen,

ich habe im php.net die funktionen gzread() usw alle betrachtet.
Dann folgendes Script geschrieben

for($i = 0; $i < count($dircontent); $i++)
{
    if(is_file($targetdir.$dircontent[$i]))
    {
 gzcompressfile($targetdir.$dircontent[$i]);
    }
}
//aus php.net geklaut
function gzcompressfile($source,$level=false)
{
   $dest=$source.'.gz';
   $mode='wb'.$level;
   $error=false;
   if($fp_out=gzopen($dest,$mode))
   {
      if($fp_in=fopen($source,'rb'))
      {
         while(!feof($fp_in))
    gzwrite($fp_out,fread($fp_in,1024*512));
       fclose($fp_in);
      }
   else $error=true;
   gzclose($fp_out);
   }
   else $error=true;
   if($error) return false;
   else return $dest;
}

Das Funktioniert auch. Allerdings wird jede Datei aus $dircontent einzeln gezippt.

Ich hätte gerne eine einzige Zippdatei mit nammen all.zip die alle Dateien aus $dircontent enthält.

Ich verstehe nicht wie das gehen soll, weil ich doch mit gzopen() eine bestehende Datei öffnen muß. all.zip existiert alledings noch nicht.
Habe das gefühl ganz nah an der Lösung zu sein. Sie aber einfach nicht zu sehen.

Was bleibt zu tun?

Danke im vorraus

Roni

  1. echo $begrüßung;

    Ich hätte gerne eine einzige Zippdatei mit nammen all.zip die alle Dateien aus $dircontent enthält.

    Dann brauchst du aber nicht gzip[*] sondern zip (ohne g). PHP bietet da allerdings nur lesenden Zugriff, wenn überhaupt diese Extension eingebunden ist. In den Userkommentaren stehen Hinweise, wie du zip-Dateien erzeugen kannst

    echo "$verabschiedung $name";

    [*] Unter Unix ist die übliche Vorgehensweise, ein tar-Archiv zu erstellen und das dann zu gzippen (oder auch bzippen).

    1. Hallo,

      gibt es für mein Problem bereits fertige Klassen?
      Wenn ja. Wo?

      Ich würde nur ungern auf system() oder shell_exec() zurückgreifen.

      Roni

      1. echo $begrüßung;

        gibt es für mein Problem bereits fertige Klassen?
        Wenn ja. Wo?

        In den erwähnten Userkommentaren zu den Zip File Functions findet sich mehr als ein Verweis auf fertige Lösungen.

        echo "$verabschiedung $name";

  2. Hi,

    Hallo,

    unter http://forum.de.selfhtml.org/archiv/2005/5/t108655/

    findest Du was du suchst

    Gruss

    Maulwurf

    1. Hi,

      das hilft.
      Schade nur das es nicht mit bereits vorhandenem Zeug geht.

      Danke

      Roni

      1. Hi,

        Schade nur das es nicht mit bereits vorhandenem Zeug geht.

        was meinst Du damit? Du kannst die Klasse runterladen und verwenden. Was ich gesehen habe die Klasse verwendet im endeffekt nur gz... Funktionen

        Gruss

        Maulwurf