note 110380 deleted from class.ziparchive by danbrown
| From: | danbrown@php.net | Date: | Wed, 17 Oct 2012 21:18:24 +0000 |
| Subject: | note 110380 deleted from class.ziparchive by danbrown | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-191368@lists.php.net to get a copy of this message | ||
Note Submitter: k dot halaburda at gmail dot com
----
Simply modified niklas version to maintain directory tree structure
function folderToZip($folder, &$zipFile, $subfolder = null) {
if ($zipFile == null) {
// no resource given, exit
return false;
}
$folder .= end(str_split($folder)) == "/" ? "" : "/";
$subfolder .= end(str_split($subfolder)) == "/" ? "" : "/";
$subfolder = (substr($subfolder,0,1)=='/')?substr($subfolder,1):$subfolder;
$handle = opendir($folder);
while ($f = readdir($handle)) {
if ($f != "." && $f != "..") {
if (is_file($folder . $f)) {
if ($subfolder != null)
$zipFile->addFile($folder . $f, $subfolder . $f);
else
$zipFile->addFile($folder . $f);
} elseif (is_dir($folder . $f)) {
if ($subfolder != null) {
$zipFile->addEmptyDir($subfolder . $f);
folderToZip($folder . $f, $zipFile, $subfolder . $f);
} else {
$zipFile->addEmptyDir($f);
folderToZip($folder . $f, $zipFile, $f);
}
}
}
}
}