Нерешаемая проблема с GZ архивом ???

  • Автор темы MisterX
  • Дата начала

MisterX

Guest
Нерешаемая проблема с GZ архивом ???

У меня возникла проблемка, хотя она возможно и нерешаемая.
Мне нужно сжать НЕСКОЛЬКО файликов в один GZ архив. Все что я смог сделать так это объединить их в один и затем сжать. Так вот возникает вопрос: возможно ли сжать так чтобы в GZ архиве было несколько файликов, а не один ? Пока я склоняюсь к тому что нельзя, но может все таки кто-нибудь
знает как такое сделать ? Даже если нельзя, то хоть подтвердите это на 100% ?
 

ForJest

- свежая кровь
tar.gz
Сначала их комопнуешь в 1 с помощью tar, потом с помощью gz это дело компрессируешь. tar занимается хранением имен, gz упаковкой. Могу ошибаться, Unix-оиды - ау :)
 

MisterX

Guest
Можно поподробнее про tar, если несложно небольшой кусочек кода на php, а то я в мануале про tar ничего не нашел.
 

ForJest

- свежая кровь
Гым. А в мануале про tar ничего и нету. Это утилита Unix'а.
Так что кусочка кода на PHP не будет :)
 

Vasya

Guest
PHP:
<?
system("tar -czf files.tar.gz *.txt");
 ?>
IMHO, проще всего...
 

leosha

Старожил PHPCLub
>Так вот возникает вопрос: возможно ли сжать так чтобы в GZ >архиве было несколько файликов, а не один

А тебя ZIP обычный никак не устраивает без всяких вызовов внешних программ?
 

MisterX

Guest
> А тебя ZIP обычный никак не устраивает без всяких вызовов внешних программ?
Не понял, что подразумевается под обычным ZIP'ом ?
 

leosha

Старожил PHPCLub
я даже не знаю как объяснить то.. Хм.
Есть архиваторы такие - pkzip, WinZip, etc..
Они создают файлы с расширением .zip =)
 

leosha

Старожил PHPCLub
Мда...
Ты спросил: "Мне нужно сжать НЕСКОЛЬКО файликов в один GZ архив"

Я задал уточняющий вопрос, который понимать следовало так: "тебе непременно нужен GZ архив? Не устроит ли тебя ZIP файл, в который можно запихать сколь угодно много других файлов, не склеивая их предварительно tar'ом".
 

MisterX

Guest
Я просто подумал что поступило предложение использовать саму программу WinZip. А если есть идея как на php сжать в zip файл то срадостью готов выслушать.
 

ForJest

- свежая кровь
Все также. Ставишь zip себе на систему и из коммандной строки вызываешь.
Хотя может существуют extensions и для создания zip, а не только его чтения.
Вообще непонятно, почему ты уперся - на PHP, на PHP. Если тебе нужно инфу в любом формате упаковать - вызываешь внешнюю программу, как нельзя лучше предназначенную для того чтобы паковать и упаковываешь. Все. Никаких лишних телодвижений.
А WinZip ничем не плох - не надо на него делать стойку :). Под виндузой вполне возможная опция.
 

leosha

Старожил PHPCLub
ForJest - ты не прав. =) Из командной строки - это не модно и плохо переносимо и не везде разрешено exec()..

Вообщем, MisterX - ты юзаешь phpMyAdmin? Найди там файлик zip.lib.php

И, собственно, все. Делаем:
PHP:
require_once ("zip.lib.inc");
$zipfile = new zipfile();
$zipfile -> addFile($file_contents_1, $filename_in_zip_arhive_1);
$zipfile -> addFile($file_contents_2, $filename_in_zip_arhive_2);
..
$zipfile -> addFile($file_contents_n, $filename_in_zip_arhive_n);

$fp = fopen("file.zip","wb");
fputs($fp,$zipfile -> file());
fclose($fp);
 

ForJest

- свежая кровь
Гы - век живи, век учись :)
Буду теперь знать откуда код позаимствовать :)
 

zip2003

Guest
А разархивировать ZiP файл обратно как. Тут уже было написано но толком ничего не объяснили - говорят пользоваться exec или system а как ими пользоваться?
 

zip2003

Guest
А каким способом это реализовано в форуме Inovision Power Board?
http://www.invisionboard.com
 

zip2003

Guest
то что сейчас IPB платный а старых весий форума я не зна. где найти
 
Сверху