PHP - PCLZIP добавление файла из строки

PCLZIP - отличная библиотека, но, к сожалению, она плохо документирована. Я использую его для поддержки также серверов, на которых отключен ZipArchive (или не поддерживается версия php)

У меня есть функция для добавления загруженных файлов (один за другим) в ZIP-архив. Если архив не существует, он создает его, если архив существует, он просто добавляет новые файлы.

У меня проблема с функцией добавления файла TXT, основанного на комментариях из архива. (функция читает комментарии, которые были предварительно подготовлены, и должна создать файл TXT из строки и вставить в архив.)

Я не могу найти функцию перезаписать файл из строки (или я не знаю, как его использовать).

Я могу создать это с PCLZIP_ATT_FILE_NAME, но каким-то образом, когда я запускаю функцию, она создает новый файл.txt (с тем же именем файла!) каждый раз, когда добавляет файл в архив (в отличие от перезаписать существующий), который я пытался использовать PCLZIP_ATT_FILE_NEW_FULL_NAME - но я не могу найти, где дать ему параметры, какой файл нужно перезаписать..

Функция здесь: (извините, если это долго..)

    $archive = new PclZip($zipname);

        if (!file_exists($zipname)){  //The Archive already exists - let´s just ADD new files.


            $comment = $comment_head . $comment_add ;

            $string_content = $comment;

            $v_list = $archive->create($file,
                                        PCLZIP_OPT_ADD_PATH, $sitename,
                                        PCLZIP_OPT_COMMENT, $comment,
                                        PCLZIP_OPT_REMOVE_ALL_PATH);

                                        $prop = $archive->properties();
                                        $prop = $prop['comment'];
                                        if (!$prop) {$prop = $comment;}

            $list = $archive->add(array(
                                   array( 
                                   PCLZIP_ATT_FILE_NAME => $string_file,
                                   PCLZIP_ATT_FILE_CONTENT => $prop,
                                   PCLZIP_ATT_FILE_NEW_FULL_NAME => $string_file
                                         )
                                   )
                                   );


                      if ($v_list == 0) {
                        die("Error : ".$archive->errorInfo(true));
                      }


        } else { 

// No Archive already exists - Create with new file .

        $comment_add =  $meta['file'] . PHP_EOL . PHP_EOL ;/*.$comment_foot*/ ;

        $b_list = $archive->add($file,
                                    PCLZIP_OPT_ADD_PATH, $sitename,
                                    PCLZIP_OPT_ADD_COMMENT, $comment_add,
                                    PCLZIP_OPT_REMOVE_ALL_PATH);

                                $prop = $archive->properties();
                                        $prop = $prop['comment'];
                                        if (!$prop) {$prop = $comment;}

            $list_6 = $archive->add(array(
                                   array( PCLZIP_ATT_FILE_NAME => $string_file,
                                        PCLZIP_ATT_FILE_CONTENT => $prop
                                         )
                                   )
                                   );

                  if ($b_list == 0) {
                    die("Error : ".$archive->errorInfo(true));
                  }

      }

Итак - кто-нибудь знает, как перезаписать файл из строки (а не из файла..) с помощью PCLzip??

1 ответ

$archive = new PclZip("archive.zip");
$v_filename = "new_file.txt";
$v_content = "This is the content of file one\nHello second line";
$list = $archive->create(array(
                               array( PCLZIP_ATT_FILE_NAME => $v_filename,
                                      PCLZIP_ATT_FILE_CONTENT => $v_content
                                     )
                               )
                         );
if ($list == 0) {
  die("ERROR : '".$archive->errorInfo(true)."'");
}  

http://www.phpconcept.net/pclzip/news/3-pclzip-26

Другие вопросы по тегам