Архивирование на стороне сервера @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 13 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
amphibian Муж.
соучастник
0
Сообщения: 702
Зарегистрирован: 10.07.02
Откуда: St.Petersburg
Заголовок сообщения: Архивирование на стороне сервера
Сообщение Добавлено: 19 Февраль 2004, 13:46:29 
Задача в том, чтобы ужать несколько файлов на сервере в один архив. В PHP есть функции для сжатия строк. В принципе на этой основе можно написать свой архиватор, но может уже есть готовые решения?

_________________
Любовь открывает кредит, который неизбежно ведет к разорению...
@TSV
постоянный участник
11
Сообщения: 4736
Зарегистрирован: 08.05.03
Сообщение Добавлено: 19 Февраль 2004, 13:52:21 
amphibian, в PHP уже есть встроенный архиватор, да не один. :) Лучший из них - это Bzip, смотри в документации Bzip2 Compression Functions и Zlib Compression Functions.
amphibian Муж.
соучастник
0
Сообщения: 702
Зарегистрирован: 10.07.02
Откуда: St.Petersburg
Сообщение Добавлено: 19 Февраль 2004, 14:38:53 
@TSV, ты говоришь про то, что я уже написал выше - функции сжатия строк. Но это не решает проблемы запаковки нескольких фалов в один архив. Кроме сжатой стороки конкретного файла, туда надо писать еще кучу всякой информации о самом сжимаемом файле, путь до него от корня и т.п. Особой проблемы написать нет, но я сомневаюсь что этого еще не написано.

_________________
Любовь открывает кредит, который неизбежно ведет к разорению...


Последний раз редактировалось amphibian 19 Февраль 2004, 14:44:10, всего редактировалось 1 раз.
@TSV
постоянный участник
11
Сообщения: 4736
Зарегистрирован: 08.05.03
Сообщение Добавлено: 19 Февраль 2004, 14:43:46 
amphibian, так сделай cgi на шелле и пусти из него обыкновенный ZIP. Проверять аргументы придется тщательно, но тебя никто и не заставляет показывать этот скрипт всему честнОму народу. ;)
amphibian Муж.
соучастник
0
Сообщения: 702
Зарегистрирован: 10.07.02
Откуда: St.Petersburg
Сообщение Добавлено: 19 Февраль 2004, 15:03:01 
@TSV, ты имеешь ввиду Shell? Но у хостера его нет. Нужно более универсальное решение.

_________________
Любовь открывает кредит, который неизбежно ведет к разорению...


Последний раз редактировалось amphibian 19 Февраль 2004, 15:25:38, всего редактировалось 1 раз.
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 19 Февраль 2004, 15:05:48 
amphibian, купи книжку про юникс для начинающих. :)

_________________
We've got the big memory and the small memory. The small memory's to remember the small things and the big memory's to forget the big ones.
amphibian Муж.
соучастник
0
Сообщения: 702
Зарегистрирован: 10.07.02
Откуда: St.Petersburg
Сообщение Добавлено: 19 Февраль 2004, 15:11:15 
Crazy, а, т.е. в юниксах уже есть стандартный архиватор и от него можно добиться нужных действий системной командой? Ладно, сейчас посмотрю.

_________________
Любовь открывает кредит, который неизбежно ведет к разорению...
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 19 Февраль 2004, 15:15:26 
Стандартный архиватор в юниксах есть, но он тебе, возможно, и не нужен. Стандартный компрессор в юниксах тоже есть -- тебе нужен именно он.

Твоя проблема в том, что ты очень неточно понимаешь смысл терминов, которые говоришь сам и слышишь от других. Вовсе не потому, что ты глупый. Просто юниксовая терминология имеет свою специфику, которую невозможно понять интуитивно. Дело усугубляется тем, что часть терминов в мире DOS/Windows имеет иной смысл. Типичный пример -- "архиватор".

_________________
We've got the big memory and the small memory. The small memory's to remember the small things and the big memory's to forget the big ones.
@TSV
постоянный участник
11
Сообщения: 4736
Зарегистрирован: 08.05.03
Сообщение Добавлено: 19 Февраль 2004, 15:31:25 
Например
Код:
 gzip -c file1.ext > foo.gz
gzip -c file2.ext >> foo.gz

gzip -c fileN.ext >> foo.gz

запакует нужные тебе файлы и сложит их в один foo.gz Файлы .gz можно склеивать, то есть просто подписывать один архив в конец другого. Это нормально.
amphibian Муж.
соучастник
0
Сообщения: 702
Зарегистрирован: 10.07.02
Откуда: St.Petersburg
Сообщение Добавлено: 19 Февраль 2004, 17:47:53 
@TSV, Crazy, спасибо. Странно что под виндами это тоже частично работает. Т.е. файл создается, но пустой. Надеюсь что у провайдера не винды стоят.

_________________
Любовь открывает кредит, который неизбежно ведет к разорению...
@TSV
постоянный участник
11
Сообщения: 4736
Зарегистрирован: 08.05.03
Сообщение Добавлено: 19 Февраль 2004, 18:07:05 
amphibian, почему частично? gzip.exe из Cygwin у меня эту операцию выполнил на ура, причем я его из вредности и из консоли запустил, и из обычной командной строки виндов (хотя это в данном случае одно и то же).

Лучше даже так:
Код:
cat file1.ext file2.ext … fileN.ext | gzip > foo.gz


Но самым правильным было бы по-честному man gzip посмотреть. ;)
amphibian Муж.
соучастник
0
Сообщения: 702
Зарегистрирован: 10.07.02
Откуда: St.Petersburg
Сообщение Добавлено: 19 Февраль 2004, 19:11:50 
@TSV, так то из Cygwin. Из под него работает (сейчас скачал и поставил). Но Виндам и Апачу ни тепло ни холодно от этого.

_________________
Любовь открывает кредит, который неизбежно ведет к разорению...
@TSV
постоянный участник
11
Сообщения: 4736
Зарегистрирован: 08.05.03
Сообщение Добавлено: 19 Февраль 2004, 19:29:36 
amphibian, почему - ни тепло ни холодно?
- Берем каталог, любой, где несколько файлов, но немного
- cat * | gzip > foo.gz из виндовой командной строки
- Все честно работает
- Проверяем, как работают CGI с шелловскими скриптами:
Код:
#!c:/cygwin/bin/sh.exe

echo "Content-type: text/html"
echo ""
echo "Hello, world!"


httpd.conf:
Код:
    ScriptAlias /cgi-bin/ "C:/cygwin/home/TSV/cgi-bin/"

    <Directory "C:/cygwin/home/TSV/cgi-bin/">
        AllowOverride None
        Options ExecCGI FollowSymLinks
        Order allow,deny
        Allow from all
    </Directory>

Усё пашет идеально.
:gent:
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 13 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100