# [php] mehrere dateien automatisch zusammen-zippen und downloadbar machen



## cater (14. Juli 2001)

hi leutz,

ich habe mehrere dateien in einem verzeichnis und will sie mit einer funktion zusammen zippen lassen, also in ein zip-archiv (eine datei) und dann downloaden können.

ich weiß, dass es soetwas wie gunzip() oder so ähnlich gibt, habe dazu aber nichts gefunden.

bin halt anfänger =)

carlo


----------



## Maximka (14. Juli 2001)

*Hi cater!*

Also die Funktionen fangen alle mit gz an.

gzclose — Close an open gz-file pointer
gzeof — Test for end-of-file on a gz-file pointer
gzfile — Read entire gz-file into an array
gzgetc — Get character from gz-file pointer
gzgets — Get line from file pointer
gzgetss — Get line from gz-file pointer and strip HTML tags 
gzopen — Open gz-file
gzpassthru — Output all remaining data on a gz-file pointer 
gzputs — Write to a gz-file pointer
gzread — Binary-safe gz-file read
gzrewind — Rewind the position of a gz-file pointer
gzseek — Seek on a gz-file pointer
gztell — Tell gz-file pointer read/write position
gzwrite — Binary-safe gz-file write
readgzfile — Output a gz-file
gzcompress — Compress a string
gzuncompress — Uncompress a deflated string
gzdeflate — Deflate a string
gzinflate — Inflate a deflated string
gzencode — Create a gzip compressed string

Die Details gibt's in PHP-Manual.

Viel Spass beim Zippen.


----------



## cater (14. Juli 2001)

Also im Manual finde ich das was du auch schon geschrieben hast, aber ich versteh nich ganz wie das funktioniert...hast du mal nen beispiel oder so? ich kann mir nich vorstellen wie das geht...wie mit FTP oder wie? ne funktion oder so...

...danke im Vorraus  

Carlo


----------



## Maximka (15. Juli 2001)

```
function writefile($gp, $filename) {
  $content = implode("\n",file($filename));
  gzwrite($gp, count($content)."\n$content");
}

function readfile($gp, $filename) {
  $length = gzgets($gp,1024);
  // wenn du am Anfang der Dateien immer ein Newline-Char haben solltest,
  // dann benutze die naechste Zeile
  // gzseek($gp, 1);
  $content = gzread($gp,$length);
  $fp = fopen($filename,'w+b');
  fwrite($fp,$content);
  fclose($fp);
}
```

das muesste so hoffentlich funktionieren.

Viel Spass.


----------

