Php und zip

hallo!

mit php lassen sich ja .zip dateien erstellen.
nun würd ich das ganze allerdings andersrum haben!
mein ziel:
ich lade eine .zip datei hoch, mein script holt die dateien raus und speichert sie online in einem ordner.
ich hab gegoogelt und meine lieblings-php-klassen-seite besucht, aber nix gefunden; das zippen dafür an jeder ecke.

nun die frage:
is das überhaupt möglich? und wenn ja, wie? gibt’s da ne funktion für?

mfg
Geisterkarle

:smile:
http://zziplib.sourceforge.net/

im php Manual steht dazu:

CXII. ZIP Funktionen (Lesezugriff)
Dieses Modul benutzt die Funktionen der ZZIPlib Bibliothek von Guido Draheim um ZIP komprimierte Archive und die darin enthaltenen Dateien zu lesen.

Zu beachten ist, dass ZZIPlib nur eine Untermenge der Funktionen zur Verfügung stellt, die in einer vollständigen Implementation des ZIP Algorithmus vorhanden sind. Zur Erstellung eines ZIP Archivs muss man sich eines der üblichen ZIP Programme bedienen.

Die ZIP Unterstützung ist standardmäßig nicht aktiviert. Um die ZIP Funktionen nutzen zu können, muss PHP mit der option --with-zip kompiliert werden. Das ZIP Modul benötigt ZZIPlib version >= 0.10.6.

Anmerkung: Zip Unterstützung für PHP vor Version 4.1.0 ist als experimentell anzusehen. Dieser Abschnitt beschreibt die ZIP Unterstützung, wie sie für PHP ab Version 4.1.0 existiert.

Beispiel zur Verwendung
Dieses Beispiel öffnet ein ein ZIP Archiv, liest jede Datei innerhalb des Archivs und gibt den Inhalt zurück. Das test2.zip Archiv, das in diesem Beispiel benutzt wird, wird mit der Original Distribution der ZZIPlib Bibliothek mitgeliefert.

Beispiel 1. Beispiel zur Verwendung der Zip Funktion

<?php $zip = zip_open("/tmp/test2.zip");<br />
if ($zip) {

 while ($zip\_entry = zip\_read($zip)) {
 echo "Name: " . zip\_entry\_name($zip\_entry) . "\n";
 echo "Actual Filesize: " . zip\_entry\_filesize($zip\_entry) . "\n";
 echo "Compressed Size: " . zip\_entry\_compressedsize($zip\_entry) . "\n";
 echo "Compression Method: " . zip\_entry\_compressionmethod($zip\_entry) . "\n";

 if (zip\_entry\_open($zip, $zip\_entry, "r")) {
 echo "File Contents:\n";
 $buf = zip\_entry\_read($zip\_entry, zip\_entry\_filesize($zip\_entry));
 echo "$buf\n";

 zip\_entry\_close($zip\_entry);
 }
 echo "\n";

 }

 zip\_close($zip);

}

?\>

Inhaltsverzeichnis
zip_close — Schließt ein ZIP Archiv
zip_entry_close — Schließt einen Verzeichniseintrag
zip_entry_compressedsize — Gibt die komprimierte Größe eines Verzeichniseintrages zurück
zip_entry_compressionmethod — Gibt die Komprimierungsmethode eines Verzeichniseintrages zurück.
zip_entry_filesize — Gibt die Größe eines Verzeichniseintrages zurück
zip_entry_name — Gibt den Namen eines Verzeichniseintrages zurück
zip_entry_open — Öffnet einen Verzeichniseintrag für den Lesezugriff
zip_entry_read — Liest einen geöffneten Verzeichniseintrag aus
zip_open — Öffnet ein ZIP Archiv
zip_read — Liest den nächsten Eintrag innerhalb des ZIP Archivs

Re: :smile:
das hatte ich auch schon bei
http://de.php.net/manual/en/ref.zip.php
gefunden.

is zwar schön, dass ich weiss, wie die dateien heissen, wie groß se sind und so, allerdings beschreibt der vorgang nicht, wie man die dateien in der zip-datei ausserhalb abspeichert (oder ich kapiers nich (8 ).

hab allerdings in den kommentaren jetzt noch was gefunden!

mal rumtesten :smile:

trotzdem danke!
Geisterkarle

das scheint aber eigentlich mit
zip_entry_open
zip_entry_read
zip_entry_close
abhandelbar zu sein, wenn ich da kurz so reinlese…

oder nicht?

jo!
doch ich brauch da einfach immer nen beispiel, da ich sonst nich blicke, was ich mit solchen funktionen alles anfangen kann; bin halt der „praktiker“ :stuck_out_tongue:

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]