За последние 24 часа нас посетили 62095 программистов и 1781 робот. Сейчас ищут 843 программиста ...

Архив под паролем

Тема в разделе "PHP для новичков", создана пользователем Your, 21 авг 2011.

  1. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Всем доброго времени!

    Знающие пожалуйста подскажите!
    Функция:

    system('что написать, чтобы разархивировать архив zip под паролем ) - как я понял выполняет внешнюю программу, всм? Вроде консольных? -pass -login или по - другому?

    Как - то не совсем понял, что потребуется!?
    Может быть есть другой способ на php ?
     
  2. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    Насколько я знаю запароленный zip можно только через консоль разархивировать. Т.е. через system()

    В коментах манулала есть пример - http://www.php.net/manual/en/ref.zip.php#42827

    Он для Юникс, под виндой нужно экспериментировать.
     
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    в справку просто заглянуть любимого архиватора
     
  4. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    самое интересное, что в расширении php_rar есть возможность запароленный архив открыть. А в php_zip нет :)
     
  5. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    system("`which unzip` -p пароль /путь куда извлекаем/ -e /путь до архива/",$ret_val);
    echo $ret_val; "1" надо "0"

    Как прописывать пути!?? Что еще я сделал не так!?
    O/C: Win Server 2003 стоит...
    Надо, чтобы на всех о/c работало это!
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    `which unzip` - это что такое?
     
  7. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    igordata, ну в этом примере, о котором говорит tommyangelo.

    Кто - нибудь из Вас знает как сделать?
    Прошу помочь с командой,

    как сделать так чтобы когда пароль верный он раз архивируется ?

    Есть ли действительно, знающие, кто сможет помочь?
     
  8. krow7

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

    С нами с:
    12 авг 2009
    Сообщения:
    398
    Симпатии:
    0
    Адрес:
    из Азии
    Код (Text):
    1. C:\Program Files\WinRAR>unrar.exe /?
    2.  
    3. Использование: UNRAR <команда> -<ключ 1> -<ключ N> <архив> <файлы...>
    4.                <@файл-список...> <путь_для_извлечения\>
    5.  
    6. <Команды>
    7.   e             Извлечь файлы в текущий каталог
    8.   l[t,b]        Показать содержимое архива [техинфо,только имена файлов]
    9.   p             Извлечь файл на устройство stdout
    10.   t             Протестировать архив
    11.   v[t,b]        Показать подробно содержимое архива [техинфо,только имена]
    12.   x             Извлечь файлы с полными путями
    13.  
    14. <Ключи>
    15.   -             Прервать дальнейший поиск ключей
    16.   ac            Снять атрибут 'архивный' после архивации или извлечения
    17.   ad            Добавить имя архива к целевому пути
    18.   ai            Игнорировать файловые атрибуты
    19.   ap<путь>      Указать путь внутри архива
    20.   av-           Не проверять электронную подпись
    21.   c-            Не показывать комментарии
    22.   cfg-          Запретить чтение конфигурации
    23.   cl            Преобразовывать имена файлов в нижний регистр
    24.   cu            Преобразовывать имена файлов в верхний регистр
    25.   dh            Открывать совместно используемые файлы
    26.   ep            Исключить пути из имён
    27.   ep3           Сохранять полные пути файлов, включая буквы дисков
    28.   f             Освежить имеющиеся файлы
    29.   id[c,d,p,q]   Запретить вывод сообщений
    30.   ierr          Отправлять все сообщения на stderr
    31.   inul          Запретить вывод всех сообщений
    32.   ioff          Выключить компьютер по завершении операции
    33.   kb            При извлечении сохранять на диске повреждённые файлы
    34.   n<файл>       Включить в обработку только указанный файл
    35.   n@            Прочитать имена файлов для включения в обработку с stdin
    36.   n@<список>    Включить в обработку файлы, указанные в файле-списке
    37.   o[+|-]        Установить режим перезаписи
    38.   oc            Устанавливать атрибут NTFS 'сжатый'
    39.   or            Переименовывать файлы автоматически
    40.   ow            Сохранять/восстанавливать владельца и группу файла
    41.   p[пароль]     Указать пароль шифрования архива
    42.   p-            Не спрашивать пароль
    43.   r             Рекурсивно с подкаталогами
    44.   ri<P>[:<S>]   Приоритет (0-по умолчанию,1-мин..15-макс) и время простоя (мс)
    45.   sl<размер>    Обрабатывать файлы размером меньше указанного
    46.   sm<размер>    Обрабатывать файлы размером больше указанного
    47.   ta<дата>      Обрабатывать файлы, изменённые после <даты> (ГГГГММДДЧЧММСС)
    48.   tb<дата>      Обрабатывать файлы, изменённые до <даты> (ГГГГММДДЧЧММСС)
    49.   tn<период>    Обрабатывать файлы не старее, чем <период> времени
    50.   to<период>    Обрабатывать файлы более старые, чем <период> времени
    51.   ts<m,c,a>[N]  Хранить/восстанавливать время изменения,создания,доступа файла
    52.   u             Обновить файлы
    53.   v             Показать список содержимого всех томов
    54.   ver[n]        Управление версиями файла
    55.   vp            Делать паузу перед каждым следующим томом
    56.   x<файл>       Не обрабатывать указанный файл/шаблон
    57.   x@            Прочитать имена исключаемых из обработки файлов с stdin
    58.   x@<список>    Не обрабатывать файлы/шаблоны, указанные в файле-списке
    59.   y             Подразумевать ответ 'Да' на все запросы
    что нужно, выберете и наколдуете через system.
     
  9. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Вроде команды командами

    а что разве можно делать типо

    system('unzip -p[ppp] /zip.zip -x /i/');

    думаю это не верно, по этому и спросил как написать команду?

    я не могу понять... system('date'); работает, сейф моды выкл.

    функция которая без пароля Zip Functions работает...

    А архив который щас под паролем, я не пойму, что за команда не углублялся в это никогда...
    Пожалуйста подскажите, что-нибудь будьте так добры.
     
  10. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Your
    а что разве можно делать типо
    а почему нет? все параметры у тебя есть. потести в коммандной строке и пихай в код.
     
  11. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    igordata
    а почему нет? все параметры у тебя есть. потести в коммандной строке и пихай в код.

    system('unzip -p[aaa] /zip/zip.zip -x /zip/');

    Не помогает уже что только не писал... И как только не изголялся с путями...
    он не извлекает что в архиве...

    Пароли как сверять? Правильно ли вообще команду пишу?
     
  12. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    Your

    блин, да запусти ты уже командную строку - Пуск->Выполнить->cmd

    Пуск->Выполнить можно нажать как Windows+R

    В строке набирай свои unzip -p[aaa] /zip/zip.zip -x /zip/ и т.д.
    Только пути правильные прописывай.

    Как всё получится - пихай в php в system
     
  13. krow7

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

    С нами с:
    12 авг 2009
    Сообщения:
    398
    Симпатии:
    0
    Адрес:
    из Азии
    PHP:
    1. <?php
    2. $pass='unlock';
    3. $path2file='C:\Archive.rar';
    4. $path2execute='F:\unzip_here';
    5. $unzipper='C:\Program Files\WinRAR\unrar.exe';
    6. $unzip_cmd='"'.$unzipper.'" x -p'.$pass.' -kb -y "'.$path2file.'" "'.$path2execute.'"';
    7. system($unzip_cmd, $var);
    8. echo $var;
    да хоть так
    строка запроса: "C:\Program Files\WinRAR\unrar.exe" x -punlock -kb -y "C:\Archive.rar" "F:\unzip_here"
     
  14. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    все конечно хорошо, но нужно зип а не рар, и кстате почемуто не работает...
     
  15. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    ладно все норм)