2010-02-03 6 views
0

Я хочу добавить пустой каталог в архив.Добавляет пустой каталог в архив

ZipArchive::addEmptyDir 

эту функцию добавить его но я корень только

Предположим, я хочу добавить его в

/dir/dir/ 

я не могу

<?php 
$zip = new ZipArchive; 
if ($zip->open('test.zip') === TRUE) { 
    if($zip->addEmptyDir('newDirectory')) { 
     echo 'Created a new root directory'; 
    } else { 
     echo 'Could not create the directory'; 
    } 
    $zip->close(); 
} else { 
    echo 'failed'; 
} 
?> 

это добавить его в корень как я могу добавить новый каталог в sub dir

ответ

1
// Function to recursively add a directory, 
// sub-directories and files to a zip archive 
function addFolderToZip($dir, $zipArchive, $zipdir = ''){ 
if (is_dir($dir)) { 
    if ($dh = opendir($dir)) { 

     //Add the directory 
     $zipArchive->addEmptyDir($dir); 

     // Loop through all the files 
     while (($file = readdir($dh)) !== false) { 

      //If it's a folder, run the function again! 
      if(!is_file($dir . $file)){ 
       // Skip parent and root directories 
       if(($file !== ".") && ($file !== "..")){ 
        addFolderToZip($dir . $file . "/", $zipArchive, $zipdir . $file . "/"); 
       } 

      }else{ 
       // Add the files 
       $zipArchive->addFile($dir . $file, $zipdir . $file); 

      } 
     } 
    } 
} 
} 

Источник: php.net

+0

РМКО пробовал, прежде чем просить, но я не могу использовать его –