Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Вопрос про распаковку архива
Форумы портала PHP.SU » » Работа с файловой системой и файлами » Вопрос про распаковку архива

Страниц (1): [1]
 

1. minoss - 19 Июля, 2011 - 20:10:21 - перейти к сообщению
Доброго времени суток.
Есть код:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.      include('pclzip.lib.php');   //подключаем библиотеку
  4.      $archive = new PclZip('archive.zip');   //имя архива
  5.      if ($archive->extract(PCLZIP_OPT_PATH, 'data',  //в какую папку будем распаковывать
  6.                                                         PCLZIP_OPT_REMOVE_PATH, '1238') == 0) {   //пропускаем путь 1238 при распаковке
  7.         die("Error : ".$archive->errorInfo(true));
  8.      }
  9. ?>
  10.  

Вот, данные код работает отлично, но, проблема заключается в том, что при распаковке архива, файлы не заменяются (т.е. если в папке "data" есть файл readme.txt, и в архиве есть такой же файл, то тот который в архиве не заменит того, который уже есть), вот в прочем в этом вся и проблема.
Т.е. у меня не получается сделать замену файлов, если таковые уже присутствуют.

P.S.
Объяснил как смог, если что, прошу прощения.
Заранее благодарен.
2. minoss - 22 Июля, 2011 - 14:31:34 - перейти к сообщению
UP
3. minoss - 01 Августа, 2011 - 11:28:02 - перейти к сообщению
Ну чего-то тишина... Никто не знает что-ли? Все только на глупые вопросы отвечают... Хм
4. Roler - 01 Августа, 2011 - 11:41:43 - перейти к сообщению
Ну вероятно это заморочки самой библиотеки, я вот с ней просто не работал никогда Улыбка
Какая-либо документация есть? Может там указан какой-то параметр?

Ну а если в ходе распаковки она вытягивает имена файлов, то можно добавить удаление таковых и распаковку поверх.
5. DeepVarvar - 01 Августа, 2011 - 14:27:17 - перейти к сообщению
minoss под виндой?
6. minoss - 01 Августа, 2011 - 19:55:07 - перейти к сообщению
Roler, да я уже наизусть выучил эту документацию, там ничего об этом нет. Если во время распаковки удалять существующие, то нагрузка на сервер будет очень большая, потому что одинаковых файлов может быть более 2000.

DeepVarvar, Linux.

Да и мне не обязательно эта библиотека, просто при помощи других у меня не получалось...
Вот например "ZipArchive", он заменяет как надо, но проблема заключается в отсутствие такой функции как "PCLZIP_OPT_REMOVE_PATH"...
7. minoss - 04 Августа, 2011 - 19:11:27 - перейти к сообщению
UP
8. DeepVarvar - 04 Августа, 2011 - 19:23:34 - перейти к сообщению
Если простыми словами, вы хотите сказать что при повторной распаковке одного и того же ахива в ту же папку, у вас получается по ДВЕ КОПИИ одноименных и одинаковых по содержимому папок и файлов?
Спойлер (Отобразить)

так чтоли??? Не понял
9. dzubchik - 04 Августа, 2011 - 20:25:34 - перейти к сообщению
DeepVarvar пишет:
Если простыми словами, вы хотите сказать что при повторной распаковке одного и того же ахива в ту же папку, у вас получается по ДВЕ КОПИИ одноименных и одинаковых по содержимому папок и файлов?
Спойлер (Отобразить)

так чтоли??? Не понял

не верно поняли. Файл не заменяется при совпадении имени.

 

Powered by ExBB FM 1.0 RC1