Shawn McKenzie wrote:
Merlin Morgenstern wrote:
Hi there,

I am trying to unzip a zip file. Therefore I am using this function:

# unzip a file
function extract_zipfile($filename){
    $zip = zip_open($filename);
    if ($zip) {
      while ($zip_entry = zip_read($zip)) {
        $fp = fopen(zip_entry_name($zip_entry), "w");
        if (zip_entry_open($zip, $zip_entry, "r")) {
          $buf = zip_entry_read($zip_entry,

It works, but unfortunatelly the extracted files are all placed into the
directory where the php file is located. Not where the original zip file
was found. I tried to add the directory to fwrite, but without success.

Does somebody know where to specify the target directory?

Thank you for any help,


Try this:

$fp = fopen(dirname($filename) . '/' . zip_entry_name($zip_entry), "w");

thank you this worked. How come the . '/' . zip_entry_name($zip_entry) is needed? Looks like a double file name, but the result is ok. Could you explain this line? Thank you!

Kind regards

PHP General Mailing List (
To unsubscribe, visit:

Reply via email to