# Mit PHP entzippen



## Tix (1. Juli 2006)

Hallo Leute, 

ich habe schon alles hier durchsucht, aber nix gefunden was mir helfen kann. 
Ich habe PHP 4.3 auf meinem LinuxServer installiert. 

Auf diesem liegt eine Zip-Datei die in einen anderen Ordner entzippt werden soll. Ich habe auch schon dieverse Links wie PHP: ZIP Funktionen (Lesezugriff) - Manual oder so durchsucht. Aber das geht alles nicht. 

Muss ich dafür was besonderes auf dem Server installiert oder freigegeben haben, damit das geht?

Wäre nett wenn Ihr mir helfen könntet. 

Gruß, Tix


----------



## Flex (1. Juli 2006)

PHP Classes - Welcome to the PHP Classes Repository hat dafür einige nette Klassen. Benutz einfach mal dort die Suchfunktion.


----------



## Tix (1. Juli 2006)

ne, nix gefunden, nur was zum zippen, aber ich muss entzippen


----------



## Flex (1. Juli 2006)

> This package can be used to pack and unpack files in ZIP archives.
> 
> There is a class that can retreive the list of packed files as well several types of file details such as the uncompressed size, last modification time, comments, etc..
> 
> ...


PHP Classes - Class: dUnzip2

Ist übrigens der zweite Treffer in der 'Compression' Gruppe der Klassen...

Und der erste wenn man nach 'unzip' sucht


----------



## Tix (1. Juli 2006)

also irgendwie komme ich mit der Website nich klar. Muss ich diese Klasse installieren, oder ist das das fertige Script. Hab bis jetzt immer nur etwas leichterere Sachen programmiert


----------



## Flex (1. Juli 2006)

Da sind doch 4 Dateien drin?
Zwei Klassen, eine zum dynamischen zippen, die andere die Unzip Klasse...
Dann sogar eine Documentation.txt die dir alles erklärt UND eine sample.php mit Beispielen. 

Anhand diesen sollte man doch wirklich arbeiten können?

Und die Klassen sind beide sehr gut dokumentiert, meiner Meinung nach.


----------



## Tix (3. Juli 2006)

Das hier ist der Quelltext meiner Datei


```
$zip = zip_open("/var/www/vhosts/bloemker-immobilien.de/httpdocs/temp/" . $datei);

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);

}
```

Das hier ist die Fehlermeldung:


```
Fatal error: Call to undefined function: zip_open() in /var/www/vhosts/bloemker-immobilien.de/httpdocs/admin/crowntabzip.php on line 20
```

Liegt das an dem Script, oder an meinem Server?


----------



## Dr Dau (3. Juli 2006)

Hallo!

Wahrscheinlich liegt es am Server (das Script kenne ich nicht), denn zip_open() ist eine Funktion von PHP..... und die steht dir nicht zur Verfügung.

Ansonsten könntest Du Dir ja z.b. auch mal PclZip ansehen.
Diese Klasse kann auch Zip-Archive packen/entpacken.
Im User Manual sind auch Beispiele für die einzelnen Funktionen (z.b. für create() und extract()).

Gruss Dr Dau


----------



## Tix (6. Juli 2006)

auf dieser Seite mit dem PclZip war ich auch schon öfter, allerdings verstehe ich es nicht. Muss ich das bei mir auf dem Server installieren, oder ist das einfach nur ne andere PHP-Funktion die schon vorinstalliert ist?


----------



## Dr Dau (6. Juli 2006)

Du musst das Script, wie im Manual beschrieben, in Dein Script einbinden um die entsprechenden Funktionen nutzen zu können.
"installieren" brauchst Du dabei garnichts, das Script ist eine Klasse die von anderen Scripten genutzt werden kann.


----------

