Всем доброго времени! Знающие пожалуйста подскажите! Функция: system('что написать, чтобы разархивировать архив zip под паролем ) - как я понял выполняет внешнюю программу, всм? Вроде консольных? -pass -login или по - другому? Как - то не совсем понял, что потребуется!? Может быть есть другой способ на php ?
Насколько я знаю запароленный zip можно только через консоль разархивировать. Т.е. через system() В коментах манулала есть пример - http://www.php.net/manual/en/ref.zip.php#42827 Он для Юникс, под виндой нужно экспериментировать.
самое интересное, что в расширении php_rar есть возможность запароленный архив открыть. А в php_zip нет
system("`which unzip` -p пароль /путь куда извлекаем/ -e /путь до архива/",$ret_val); echo $ret_val; "1" надо "0" Как прописывать пути!?? Что еще я сделал не так!? O/C: Win Server 2003 стоит... Надо, чтобы на всех о/c работало это!
igordata, ну в этом примере, о котором говорит tommyangelo. Кто - нибудь из Вас знает как сделать? Прошу помочь с командой, как сделать так чтобы когда пароль верный он раз архивируется ? Есть ли действительно, знающие, кто сможет помочь?
Код (Text): C:\Program Files\WinRAR>unrar.exe /? Использование: UNRAR <команда> -<ключ 1> -<ключ N> <архив> <файлы...> <@файл-список...> <путь_для_извлечения\> <Команды> e Извлечь файлы в текущий каталог l[t,b] Показать содержимое архива [техинфо,только имена файлов] p Извлечь файл на устройство stdout t Протестировать архив v[t,b] Показать подробно содержимое архива [техинфо,только имена] x Извлечь файлы с полными путями <Ключи> - Прервать дальнейший поиск ключей ac Снять атрибут 'архивный' после архивации или извлечения ad Добавить имя архива к целевому пути ai Игнорировать файловые атрибуты ap<путь> Указать путь внутри архива av- Не проверять электронную подпись c- Не показывать комментарии cfg- Запретить чтение конфигурации cl Преобразовывать имена файлов в нижний регистр cu Преобразовывать имена файлов в верхний регистр dh Открывать совместно используемые файлы ep Исключить пути из имён ep3 Сохранять полные пути файлов, включая буквы дисков f Освежить имеющиеся файлы id[c,d,p,q] Запретить вывод сообщений ierr Отправлять все сообщения на stderr inul Запретить вывод всех сообщений ioff Выключить компьютер по завершении операции kb При извлечении сохранять на диске повреждённые файлы n<файл> Включить в обработку только указанный файл n@ Прочитать имена файлов для включения в обработку с stdin n@<список> Включить в обработку файлы, указанные в файле-списке o[+|-] Установить режим перезаписи oc Устанавливать атрибут NTFS 'сжатый' or Переименовывать файлы автоматически ow Сохранять/восстанавливать владельца и группу файла p[пароль] Указать пароль шифрования архива p- Не спрашивать пароль r Рекурсивно с подкаталогами ri<P>[:<S>] Приоритет (0-по умолчанию,1-мин..15-макс) и время простоя (мс) sl<размер> Обрабатывать файлы размером меньше указанного sm<размер> Обрабатывать файлы размером больше указанного ta<дата> Обрабатывать файлы, изменённые после <даты> (ГГГГММДДЧЧММСС) tb<дата> Обрабатывать файлы, изменённые до <даты> (ГГГГММДДЧЧММСС) tn<период> Обрабатывать файлы не старее, чем <период> времени to<период> Обрабатывать файлы более старые, чем <период> времени ts<m,c,a>[N] Хранить/восстанавливать время изменения,создания,доступа файла u Обновить файлы v Показать список содержимого всех томов ver[n] Управление версиями файла vp Делать паузу перед каждым следующим томом x<файл> Не обрабатывать указанный файл/шаблон x@ Прочитать имена исключаемых из обработки файлов с stdin x@<список> Не обрабатывать файлы/шаблоны, указанные в файле-списке y Подразумевать ответ 'Да' на все запросы что нужно, выберете и наколдуете через system.
Вроде команды командами а что разве можно делать типо system('unzip -p[ppp] /zip.zip -x /i/'); думаю это не верно, по этому и спросил как написать команду? я не могу понять... system('date'); работает, сейф моды выкл. функция которая без пароля Zip Functions работает... А архив который щас под паролем, я не пойму, что за команда не углублялся в это никогда... Пожалуйста подскажите, что-нибудь будьте так добры.
Your а что разве можно делать типо а почему нет? все параметры у тебя есть. потести в коммандной строке и пихай в код.
igordata а почему нет? все параметры у тебя есть. потести в коммандной строке и пихай в код. system('unzip -p[aaa] /zip/zip.zip -x /zip/'); Не помогает уже что только не писал... И как только не изголялся с путями... он не извлекает что в архиве... Пароли как сверять? Правильно ли вообще команду пишу?
Your блин, да запусти ты уже командную строку - Пуск->Выполнить->cmd Пуск->Выполнить можно нажать как Windows+R В строке набирай свои unzip -p[aaa] /zip/zip.zip -x /zip/ и т.д. Только пути правильные прописывай. Как всё получится - пихай в php в system
PHP: <?php $pass='unlock'; $path2file='C:\Archive.rar'; $path2execute='F:\unzip_here'; $unzipper='C:\Program Files\WinRAR\unrar.exe'; $unzip_cmd='"'.$unzipper.'" x -p'.$pass.' -kb -y "'.$path2file.'" "'.$path2execute.'"'; system($unzip_cmd, $var); echo $var; да хоть так строка запроса: "C:\Program Files\WinRAR\unrar.exe" x -punlock -kb -y "C:\Archive.rar" "F:\unzip_here"