Собственно, пытаюсь разархивировать zip архив, в котором файлы имеют русскоязычное название. С англоязычными проблем нет. Интересует в принципе только один файл из архива.. как его лучше достать? Если конкретно, то "price.zip" содержит "прайс-лист.xls" Код (Text): $zip = new ZipArchive; $res = $zip->open('price.zip'); if ($res === TRUE) { echo 'ok'; $zip->extractTo('pricefolder'); $zip->close(); } else { echo 'failed, code:' . $res; }
Да блин задолбали псевдоблюстители правопорядка! У меня проблема технического характера, а не правового! Мне нужно взять прайс из личного кабинета и обновить по нему магазинный. Надоело закачивать по FTP, нужно автоматизировать. $zip->renameName и $zip->renameIndex не помогают, ибо развернутый прайс весит 4мб. Маленькие архивы обрабатывает, а большие - нет...
всё, разобрался, всем спасибо подозрительные вы мои) кому может пригодится http://www.prime-speed.ru/PHP_Manual/ref.zip.html
Нет, всё же проблема осталась. Как-то раз удалось переименовать файл в архиве и распаковать его. Теперь не получается.. Видимо не хватает ресурсов. В сжатом виде файл 900к, в распакованом 4Мб.. На переименовании рушится, при этом в папке с архивом появляются временные файлы размером 0 в количестве 5 штук.. При распаковке без переименования пишет что всё ОК, но файл с русскоязычным названием не появляется. Если тот же файл переименовать вручную на латиницу, то всё нормально разархивируется и файл появляется. Пробовал getStream с целью создать поток и сохранить его под нужным именем - та же фигня - поток не создается!Делаю копию архива с теми же именами но с мелкими файлами - работает. С моим прайсом на 4Мб - не работает. ..какие идеи?