Verzeichnis zippen

Hallo liebes Forum,
ich würde gerne ein Verzeichnis zippen, jedoch gelingt mir dies nur beim Stammverzeichnis.

<?php
// Startet den Buffer, sodass keine Header-Fehlermeldungen entstehen.
ob_start();
 
// Läd die Zip-Library
require("zip.lib.php");
 
// Erstellt eine neue Zipdatei
$zipfile = new zipfile("archive.zip");
 
// Fügt den kompletten Inhalt des Verzeichnisses "/" in die Zipdatei ein.
$zipfile->addDirContent("./images/");
 
// Gibt die Zip-Datei aus.
echo $zipfile->file();
?>

Ist dies vielleicht untersagt, oder hat mein Code einen Fehler?

Nja die andere frage ist wie viel sinn es macht, Bilder zu Zippen

in erster linie möcht ich nur wissen wie und ob es geht.
sinn macht es bei Bildern als Container Format.

natürlich dann ohne komprimierung fals man dies einstellen kann

Vermutlich ist der abschließende Slash zuviel.

Versuch doch mal

statt

By the way: Vamp ist echt ein Freund von Grundlagendiskussionen, oder??

das problem ist deine zip.php klasse… die arbeitet net rekursiv

les dir mal das heir durch: php-resource.de/forum/showth … 54481.html

ich selbst nutze das content management system php-fusion. wenn ich dort im adminbereich eine datenbanksicherunge machen möchte, kann ich die sql-datei auch als komprimiertes archiv lokal speichern.

habe das eben mal getestet: die datei die ich heruntergeladen habe war eine komprimierte gz-datei, die ich z.b. mit win-rar entpacken kann.

vielleicht findest du durch google etwas sinvolles, was dir da weiterhilft :wink:

Danke für die Antworten.
Nein, der Slash bewikrt nichts. Hab auch schon alle möglichen Varianten durch probiert.
Versuchs gerade mit der DeepDir Klasse http://www.php-resource.de/forum/showthread/t-54481.html.
Ka, ob mir das weiterhilft

Vielen Dank Hardi,
Es läuft, auch wenn es doch nen wenig Laufzeit frisst
Hier die Page, in der es beschrieben wird http://www.flashforum.de/forum/showthread.php?t=180609

at.php.net/ZIP
PHP hat das alles schon fertig :wink:

<?php
$base = ".";

$zip = new ZipArchive();
$zip->open("Datei.zip");

$dirlist = array("/");
while($dir = @array_pop($dirlist))
{
   if($dir != "/") $zip->addEmptyDir($dir);
   foreach(readdir($base.$dir) as $file)
   {
      if($file == "." || $file == "..") continue;
      elseif(is_file($base.$dir.$file))
         $zip->addFile($base.$dir.$file, $dir.$file);
      elseif(is_dir($base.$dir.$file))
          $dirlist[] = $dir.$file."/";
    }
}
$zip->close();

Ungetestet :wink:

P.S. wenn du Fehlermeldungen verhindern willst, ist es intelligenter vor die Funktion ein @ zu setzen.
z.B.

Würde keine Fehlermeldung ausspucken. Obwohl die Funktion nicht existiert.

Probiers mal damit: de.wikipedia.org/wiki/Tar

Weil das spart massig an Rechenleistung wenn man den Prozessor nicht verzweifelt versucht das zeug komprimieren zu lassen.

Es werden jetzt hier wahrscheinlich nicht so viele Leute auf ihrem Space anfangen Sachen rumzuzippen, aber wenn das der Fall sein sollte könnte das zum Problem werden^^

Tar tut eben nur Viele Dateien zu einer Einzigen zusammenfassen ohne den Inhalt in irgend einer Art zu komprimieren was natürlich massig an Rechenleistung spart.

[quote]Probiers mal damit: de.wikipedia.org/wiki/Tar

Weil das spart massig an Rechenleistung wenn man den Prozessor nicht verzweifelt versucht das zeug komprimieren zu lassen.

Es werden jetzt hier wahrscheinlich nicht so viele Leute auf ihrem Space anfangen Sachen rumzuzippen, aber wenn das der Fall sein sollte könnte das zum Problem werden^^

Tar tut eben nur Viele Dateien zu einer Einzigen zusammenfassen ohne den Inhalt in irgend einer Art zu komprimieren was natürlich massig an Rechenleistung spart.[/quote]

Sehe ich genauso. Problem ist nur, das Tar kein weit verbreitetes Austauschformat ist. Da würd ich eher überlegen ob ich die zip nicht zusätzlich bei rapidshare hochlade^^.
Ich glaub jedoch, dass man die Kompressionsrate auf 0 setzen kann wodurch das Ergebniss selbe erzieht wird.

Der Thread wäre im PHP-Forum besser aufgehoben =)

Ist es möglich ein Passwort beim Erstellen eines Zip’s zu setzen? Wie funktioniert es?