заархивировать содержимое папки

Dozep

Профессор
Регистрация
5 Авг 2008
Сообщения
170
Реакции
37
Товарищи, как заархивировать содержимое папки papka на сервере в зип архив? причемв этой папке есть еще папки.
то что нашел в гугле
PHP:
// Создаем архив и добавляем в него все файлы из директории
$zip = new ZipArchive;
$res = $zip -> open('images.zip', ZipArchive::CREATE);
if ($res === TRUE) 
{
    $dir = opendir( "./images" );
    chdir( "./images" );
    while( $d = readdir( $dir ) )
    {
        if( is_file( $d ) )
        {
            echo "Добавляем в архив файл ".$d." размером ".filesize( $d )."<br />";
            $zip -> addFile( $d, $d);           
        }
    }
    $zip -> close();
    closedir( $dir ); 
    echo '<p >Файлы добавлены в архив</p>';
} 
else 
{
    echo '<p >Ошибка</p>';
}
?>
этот только файлы архивит, без подпапки.
PHP:
include_once('pclzip.lib.php');
$archive = new PclZip('123.zip'); //указываем имя будущего архива
$v_list = $archive->create('papka',PCLZIP_OPT_REMOVE_PATH,'',PCLZIP_OPT_ADD_PATH, '');
if ($v_list == 0){die("Error : ".$archive->errorInfo(true));}
этот в данном случае архивит весь каталог papka. у него много параметров, среди которых есть
PHP:
PCLZIP_OPT_NO_COMPRESSION 
Позволяет добавить файл в архив не сжимая его.
     $archive = new PclZip('test.zip');
    $list = $archive->add("data/file.txt", PCLZIP_OPT_NO_COMPRESSION);
    if ($list == 0) {
      echo "ERROR : ".$archive->errorInfo(true);
    }
правда я так и не разобрался с ним, не получилось, в архив test.zip ничего не записывается хотя возможно это и не то вовсе:)

упд. изучил Для просмотра ссылки Войди или Зарегистрируйся , поочереди добавил сначала файлы потом папки и все вышло. функции ZipArchive::addFile и ZipArchive::addEmptyDir

может кому пригодится)
 
Назад
Сверху