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

Тема в разделе "Как сделать...", создана пользователем Dozep, 19 янв 2011.

  1. Dozep

    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 ничего не записывается хотя возможно это и не то вовсе:)

    упд. изучил http://ru.php.net/zip , поочереди добавил сначала файлы потом папки и все вышло. функции ZipArchive::addFile и ZipArchive::addEmptyDir

    может кому пригодится)