note 96277 deleted from function.ziparchive-addemptydir by thiago
| From: | thiago@php.net | Date: | Thu, 18 Feb 2010 11:39:18 +0000 |
| Subject: | note 96277 deleted from function.ziparchive-addemptydir by thiago | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-166116@lists.php.net to get a copy of this message | ||
Note Submitter: Oscar Agibaev
----
<?
$base = '/home/vhosts/s-m-s.tv/'; // your path
$dir = 'httpdocs/'; // your folder
$files = array();
$files = scan_dir_array($base, $dir, $files);
echo '<pre>';
print_r($files);
echo '<pre>';
if (!empty($_POST['name']))
$zip_name = $_POST['name'];
else
$zip_name = 'new.zip';
create_zip($base.$zip_name, $base, $files);
function scan_dir_array($base, $dir, $ar)
{
if (!is_dir($base.$dir)) exit;
$ar[] = $dir;
if ($hdir = opendir($base.$dir))
{
while (false !== ($file = readdir($hdir)))
{
if ($file != '.' && $file != '..' )
{
$type = filetype($base.$dir.$file);
if ($type == 'dir')
$ar = scan_dir_array($base, $dir.$file.'/', $ar);
else
$ar[] = $dir.$file;
print("<br />$file $type");
}
}
closedir($hdir);
}
return $ar;
}
//scan_dir_array
function create_zip($zip_name, $base, $files)
{
$zip = new ZipArchive();
if ($zip->open($zip_name, ZIPARCHIVE::OVERWRITE) === true)
{
foreach ($files as $file)
{
print("<br />$base$file");
if (is_dir($base.$file))
{
if ($zip->addEmptyDir($file))
echo ' - create dir';
}
else
{
if (is_file($base.$file))
if ($zip->addFile($base.$file, $file))
echo ' - add file';
}
}
$zip->close();
}
}
//create_zip
?>
addEmptyDir() - not works on Debian Etch...