За последние 24 часа нас посетили 17647 программистов и 1742 робота. Сейчас ищут 1043 программиста ...

Проблемы разархивирования ZIP с кирилическими filename

Тема в разделе "PHP для новичков", создана пользователем ZYM, 12 янв 2010.

  1. ZYM

    ZYM Активный пользователь

    С нами с:
    12 янв 2010
    Сообщения:
    6
    Симпатии:
    0
    Собственно, пытаюсь разархивировать zip архив, в котором файлы имеют русскоязычное название.
    С англоязычными проблем нет. Интересует в принципе только один файл из архива.. как его лучше достать?

    Если конкретно, то "price.zip" содержит "прайс-лист.xls"

    Код (Text):
    1.    $zip = new ZipArchive;
    2.    $res = $zip->open('price.zip');
    3.    if ($res === TRUE) {
    4.     echo 'ok';
    5.     $zip->extractTo('pricefolder');
    6.     $zip->close();
    7.    } else {
    8.     echo 'failed, code:' . $res;
    9.    }
     
  2. Devzirom

    Devzirom Активный пользователь

    С нами с:
    15 фев 2009
    Сообщения:
    463
    Симпатии:
    0
    Адрес:
    Пермь
    опять, что-то тырим у кого-то?

    А вообще нужно перекодировать имена файлов. Больше ничего не скажу :)
     
  3. ZYM

    ZYM Активный пользователь

    С нами с:
    12 янв 2010
    Сообщения:
    6
    Симпатии:
    0
    Да блин задолбали псевдоблюстители правопорядка!
    У меня проблема технического характера, а не правового!
    Мне нужно взять прайс из личного кабинета и обновить по нему магазинный.
    Надоело закачивать по FTP, нужно автоматизировать.

    $zip->renameName и $zip->renameIndex не помогают, ибо развернутый прайс весит 4мб.
    Маленькие архивы обрабатывает, а большие - нет...
     
  4. ZYM

    ZYM Активный пользователь

    С нами с:
    12 янв 2010
    Сообщения:
    6
    Симпатии:
    0
  5. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    ну главное твои...
    =)

    Большой брат следит...
     
  6. ZYM

    ZYM Активный пользователь

    С нами с:
    12 янв 2010
    Сообщения:
    6
    Симпатии:
    0
    Нет, всё же проблема осталась. Как-то раз удалось переименовать файл в архиве и распаковать его. Теперь не получается.. Видимо не хватает ресурсов.

    В сжатом виде файл 900к, в распакованом 4Мб..

    На переименовании рушится, при этом в папке с архивом появляются временные файлы размером 0 в количестве 5 штук..

    При распаковке без переименования пишет что всё ОК, но файл с русскоязычным названием не появляется.
    Если тот же файл переименовать вручную на латиницу, то всё нормально разархивируется и файл появляется.


    Пробовал getStream с целью создать поток и сохранить его под нужным именем - та же фигня - поток не создается!Делаю копию архива с теми же именами но с мелкими файлами - работает. С моим прайсом на 4Мб - не работает.


    ..какие идеи?