ID: 50141 User updated by: samantha86 at web dot de Reported By: samantha86 at web dot de -Status: Feedback +Status: Open Bug Type: Zip Related Operating System: windows (xp and 7) PHP Version: 5.3.0 New Comment:
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"); ... ?> Previous Comments: ------------------------------------------------------------------------ [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. ------------------------------------------------------------------------ [2009-11-10 19:26:28] samantha86 at web dot de Description: ------------ hi, i have a problem with files generated/altered via the ziparchive class. my problem is the same as Bug #39714, but i have been using php 5.3.0 instead of 5.2.x i use to use ubuntu linux and i have NO problem there with extracting the zip files. it does not matter on what server the zip files are generated, windows or linux, it depends on the client where i try to open one of these zip files. the code for the zipfile generation looks like this: Reproduce code: --------------- <?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); } } } } } } ?> Expected result: ---------------- i'd like to receive a zipfile where i can see the files, but also the directories wit the included files that are generated in a deeper recursion of the function Actual result: -------------- under windows i only see the files that are in the root of the zip archive, under ubuntu linux everything is ok. thank you in advance for sacrificing your time ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=50141&edit=1