Ordner und Unterordner in ZIP packen

NightWatcher

Erfahrenes Mitglied
Hallo,

ich habe nen Problem.

Und zwar möchte ich nen Ordner "data/downloads/artists" inkl deren Unterordner in ein ZIP File packen.

Leider habe ich per Suche nicht gefunden :(

Vielleicht könnt ihr mir ja weiter helfen, danke.
 
Pushen nach 2h - muss das sein?

Es gibt die PHP-Anlaufstelle php.net, worauf man die Funktionsreferenz schlechthin findet. Wenn man also "nur" die passenden Funktionen zu einem Problem sucht, dann sollte man sich zuerst dort umschauen. Die Seite bietet ein Inhaltsverzeichnis nach verschiedenen Rubriken. In Deinem Fall wärst Du auf die ZIP-Funktionen und die ZLIB-Komprimierungsfunktionen gestoßen, wobei für die Komprimierung auf dem Server nur ZLIB in Frage kommt.

--> http://de.php.net/manual/de/ref.zlib.php

snuu
 
Danke, aber da bin ich auch schon vorher drauf gekommen :)

Nur leider bekomme ich es nicht hin, die Ordner inkl. Unterordner auszulesen und in nen Archiv zu packen
 
Also Funktionen zum Auslesen von Ordnern und Unterordnern findest du hier im Forum doch wohl zuhauf (Suche verwenden!).

Wenn du dir die Seite zur ZLib auf php.net genauer anschaust, dann findest du dort bei den Userkommentaren einige brauchbare Funktionen für das Komprimieren udn Entpacken von Archiven (siehe beispielsweise den Kommentar von "xorinox at tiscali dot ch" vom 4. Juni 2004).
 
Hi,

also ich habe es nun folgendermaßen geschrieben:

PHP:
$Verzeichnis = opendir("data/downloads/artists/");
$Eintrag = readdir($Verzeichnis);
$zp = gzopen('data/downloads/artist.gz', "w9");
while ($Eintrag) {
      $fp = fopen($Eintrag, "r");
      $data = fread ($fp, filesize($Eintrag));
      fclose($fp);
      gzwrite($zp, $data);
      $Eintrag = readdir($Verzeichnis);
}
closedir($Verzeichnis);

Nun bekomme ich folgende Fehlermeldung:

Code:
Warning: fopen(artist.ini): failed to open stream: No such file or directory in /home/web27/public_html/ces/data/content/member/index.php on line 221

Warning: filesize(): Stat failed for artist.ini (errno=2 - No such file or directory) in /home/web27/public_html/ces/data/content/member/index.php on line 222

Warning: fread(): supplied argument is not a valid stream resource in /home/web27/public_html/ces/data/content/member/index.php on line 222

Warning: fclose(): supplied argument is not a valid stream resource in /home/web27/public_html/ces/data/content/member/index.php on line 223
artist
Warning: fopen(artist): failed to open stream: No such file or directory in /home/web27/public_html/ces/data/content/member/index.php on line 221

Warning: filesize(): Stat failed for artist (errno=2 - No such file or directory) in /home/web27/public_html/ces/data/content/member/index.php on line 222

Warning: fread(): supplied argument is not a valid stream resource in /home/web27/public_html/ces/data/content/member/index.php on line 222

Warning: fclose(): supplied argument is not a valid stream resource in /home/web27/public_html/ces/data/content/member/index.php on line 223

Und das, obwohl alle Ordner und Dateien 100pro 777er CHMOD Rechte haben
 
Das hat mit dem CHMOD erstmal gar nichts zu tun.
Ich glaube eher, dass du einen Pfad vergisst.
PHP:
//falsch:
$fp = fopen($Eintrag, "r");
//richtig:
$fp = fopen('data/downloads/artists/'.$Eintrag, "r");
 
Oh gott, danke, das hätte ich im leben mal wieder nicht gesehen.

Jetzt es :)

Aber ein problem besteht noch :(
Mit dem Code Schnippsel kopiert er nicht die Dateien in ein Archiv, sondern schreibt den inhalt der Daten einfach in das Archiv.

Was mache ich da noch falsch?
 

Neue Beiträge

Zurück