ID:               50141
 Updated by:       f...@php.net
 Reported By:      samantha86 at web dot de
 Status:           Open
 Bug Type:         Zip Related
 Operating System: windows (xp and 7)
 PHP Version:      5.3.0
 New Comment:

Addendum:
if I change
  $zip->addDir(PATH."/example", "/example");
to
  $zip->addDir(PATH."/example", "example");
I can avoid this in 5.2.6 (debian php), 5.3.0 and 5.3.1RC3
and get:
example/x.ini


Previous Comments:
------------------------------------------------------------------------

[2009-11-11 09:40:21] samantha86 at web dot de

oh sorry that piece: "/languages");
was too much, it is not in my orignal code. just a copy and paste
error.

------------------------------------------------------------------------

[2009-11-11 09:38:54] samantha86 at web dot de

yes, this folder includes some other folders, which can be seen when
using a linux machine.

the structure should look like this:

myzipfile.zip
   |_ /admin
   |_ /core
   |_ ...some othe folders...
   |_ config.php
   |_ ...some other files in the root of the zipfile...

the code i use to add the directories/files it looks exactly like
this:

<?php
...
//for the directories:
$zip->addDir(PATH."/admin", "/admin");
$zip->addDir(PATH."/core", "/core");"/languages");
...
for the files:
$zip->addFile(PATH."/backup/files/config.php", "config.php");
$zip->addFile(PATH."/backup/files/index.php", "index.php");
...
?>

------------------------------------------------------------------------

[2009-11-10 23:47:13] f...@php.net

If I open your zip file with 7-ZIP instead of the integrated windows
zip tool, there's a folder with a weird name.

Might be just a blank space, might be a null byte.
But in that folder I see many folders:
admin / backup / core / installation / and some more

Can you please verify that your generated subfolder name is not just
incorrectly set?

------------------------------------------------------------------------

[2009-11-10 20:03:02] samantha86 at web dot de

here is some example code, an already generated zip file can be
downloaded at my demoserver
http://steffisgarten.bplaced.net/chillyCMS/admin/tools.site.php?tool=backup
username: admin, pw: demo
maybe this can save you some time.

<?php
class Zipper extends ZipArchive {

public function addDir($path, $newname) {
        $nodes = glob($path.DIRECTORY_SEPARATOR."*");
        if (!empty($nodes)) {
                foreach ($nodes as $node) {
                        //exclude temporary files
                        if (substr($node,-1)!="~") {
                                $newnode=substr($node,strlen($path)+1);
                                $newnode=$newname.DIRECTORY_SEPARATOR.$newnode;
                                if (is_dir($node)) {
                                        $this->addDir($node,$newnode);
                                } else if (is_file($node))  {
                                        $this->addFile($node,$newnode);
                                }
                        }
                }
        }
}

}

$zip=new Zipper();
if ($zip->open($file_dest, ZIPARCHIVE::CREATE)) {
        $zip->addDir(PATH."/example", "/example");
} else {
        echo "error";
}
?>

------------------------------------------------------------------------

[2009-11-10 19:31:27] paj...@php.net

Thank you for this bug report. To properly diagnose the problem, we
need a short but complete example script to be able to reproduce
this bug ourselves. 

A proper reproducing script starts with <?php and ends with ?>,
is max. 10-20 lines long and does not require any external 
resources such as databases, etc. If the script requires a 
database to demonstrate the issue, please make sure it creates 
all necessary tables, stored procedures etc.

Please avoid embedding huge scripts into the report.



------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/50141

-- 
Edit this bug report at http://bugs.php.net/?id=50141&edit=1

Reply via email to