За последние 24 часа нас посетили 15880 программистов и 1641 робот. Сейчас ищут 1028 программистов ...

ZIP-архивация файла

Тема в разделе "Прочие вопросы по PHP", создана пользователем g200, 9 май 2014.

  1. g200

    g200 Новичок

    С нами с:
    16 дек 2013
    Сообщения:
    25
    Симпатии:
    0
    Вопрос такой, подскажите нормальный способ конвертирования любого файла в ZIP либо RAR файл. Все что описано в документации на офф. сайте либо устарело, либо не срабатывает. В настоящий момент я использую внешнюю библиотеку от Python (через вызов), хочется все делать на ПХП...

    Из phpinfo:

    Код (Text):
    1. Zip: enabled
    2. Extension Version: $Id$
    3. Zip version: 1.9.1
    4. Libzip version: 0.9.0
    Вот это не работает почему-то:

    Код (Text):
    1.  
    2. $zip = new ZipArchive;
    3. $res = $zip->open('test.zip');
    4. if ($res === TRUE) {
    5. echo 'ok';
    6. } else {
    7. echo 'failed, code:' . $res;
    8. }
    Папка, где размещен скрипт имеет CHMOD 777. Сам скрипт попадает в условие if ($res === TRUE) и echo 'ok' выводится, только вот никакого файла не создается )) Что не так ?
     
  2. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Во-первых, забыл указать флаг, что нужно создать новый архив, а не открыть существующий. Нужно методу open вторым аргументом передать ZipArchive::CREATE:

    Код (PHP):
    1. $res = $zip->open('test.zip', ZipArchive::CREATE); 
    Во-вторых, чтобы созданный архив появился на диске - нужно в него хоть что-нибудь добавить. Если в архиве нету ничего (как в твоём примере - ты только пытаешься создать, но ничего в него не записываешь) - то и файл архива не создастся.