Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Extensions > Как распаковать tar.gz?


Автор: Elfet 26.5.2005, 17:58
Нужен скрипт распаковки tar.gz архивов.
Заранее спасибо! smile

Автор: Mal Hack 26.5.2005, 18:09
Лучше через system вызвать gzip.... Команду точно не помню.

Автор: sergejzr 26.5.2005, 18:12
Комманда например

gunzip XXX.tar.gz
gtar -xf -XXX.tar

Автор: simanyay 26.5.2005, 18:20
а точнее
Код

<?php
system('tar -xzf xxx.tar.gz');
?>

Автор: Mal Hack 26.5.2005, 18:26
simanyay а разве tar разберет tar.gz??? ведь он сначала делает tar, а потом GZip.. Или я не прав?
Elfet
ЕщЕ: http://pear.php.net/package/Archive_Tar
http://www.phpclasses.org/browse/package/945.html
http://www.phpclasses.org/browse/package/529.html

ЗЫ: system, лучше smile

http://www.google.com/custom?domains=www.phpclasses.org&q=tar&sa=Search&sitesearch=www.phpclasses.org&client=pub-2951707118576741&forid=1&channel=5742870948&ie=ISO-8859-1&oe=ISO-8859-1&cof=GALT%3A%23663399%3BGL%3A1%3BDIV%3A%23222222%3BVLC%3A663399%3BAH%3Acenter%3BBGC%3AA3C5CC%3BLBGC%3AA3C5CC%3BALC%3A0000FF%3BLC%3A0000FF%3BT%3A000000%3BGFNT%3A0000FF%3BGIMP%3A0000FF%3BLH%3A50%3BLW%3A256%3BL%3Ahttp%3A%2F%2Ffiles.phpclasses.org%2Fgraphics%2Fgooglesearch.jpg%3BS%3Ahttp%3A%2F%2Fwww.phpclasses.org%2Fsearch.html%3BFORID%3A1%3B&hl=en

Автор: Elfet 26.5.2005, 18:40
Цитата(simanyay @ 26.5.2005, 19:20)
system('tar -xzf xxx.tar.gz');

ето не помагло.
smile


а с архивами я тоже чего-то запутался smile


Автор: simanyay 26.5.2005, 18:45
Цитата(Mal @ 26.5.2005, 20:26)
simanyay а разве tar разберет tar.gz???


Флаги -x и -z говорят о том, что архив надо распаковать и он сжат методом gz. Если вместо -z поставить -j, то будет метод bz2.

Цитата(Elfet @ 26.5.2005, 20:40)
ето не помагло.


Что пишет?

Сделай
Код

<?php
echo system('tar -xzvf ./xxx.tar.gz');
?>


Это выведет последнюю строчку вывода и если какая-то ошибка произошла, то там и будет. И ещё, а архив в одной папке с .php скриптом? Если нет, то укажи там полный путь (/home/www/...)

Автор: Elfet 26.5.2005, 18:50
Цитата(simanyay @ 26.5.2005, 19:45)
Что пишет?

Ничего smile

Цитата(simanyay @ 26.5.2005, 19:45)
И ещё, а архив в одной папке с .php скриптом?

да, в одной

Автор: Mal Hack 26.5.2005, 18:56
Elfet а классы, линки на которые я давал, не пробовал?

Автор: Elfet 26.5.2005, 19:00
Mal Hack, пробовал =) Долго там я ходил, туда суда. нашел что-то не работающие и непонятно как работающие smile

Автор: sergejzr 26.5.2005, 19:11
Может у тебя не установлено чего. Попробуй те две строчки, которые я дал (gtar можно на tar заменить) просто в терминале запустить.

Автор: Elfet 26.5.2005, 19:16
Цитата(sergej @ 26.5.2005, 20:11)
Может у тебя не установлено чего. Попробуй те две строчки, которые я дал (gtar можно на tar заменить) просто в терминале запустить.

Это не у меня smile Это у Админа smile
Тоже пробовал не выходит smile

Автор: simanyay 26.5.2005, 19:18
А у тебя tar-то стоит?
Добавлено @ 19:18
ну у Админа, я имел ввиду smile

Автор: Elfet 26.5.2005, 19:23
Админ сказал, что он распаковывать не будет, чтоб сами распаковывали (всего 2-3 строчки smile )
Видимо стоит smile

Автор: simanyay 26.5.2005, 19:48
Цитата(Elfet @ 26.5.2005, 21:23)
Админ сказал, что он распаковывать не будет, чтоб сами распаковывали (всего 2-3 строчки smile )
Видимо стоит smile


гмм... тады предварительно сделай
Код

<?php
echo system('whereis tar');
?>


и посмотри, что выведет

Автор: Mal Hack 26.5.2005, 19:52
Код
<?php
error_reporting(E_ALL);
echo system('whereis tar');
?>

А то вдруг system выключена smile

Автор: Elfet 26.5.2005, 20:29
Пусто smile




smile

Автор: simanyay 26.5.2005, 20:41
smile я пас... может у Админа спросить? smile

Автор: Mal Hack 26.5.2005, 20:45
Последняя попытка:
Код
<?php
error_reporting(E_ALL);
echo `whereis tar`;
echo `tar -xzf xxx.tar.gz`;
?>

Автор: Elfet 26.5.2005, 21:08
Цитата(Mal @ 26.5.2005, 21:45)
<?php
error_reporting(E_ALL);
echo `whereis tar`;
echo `tar -xzf xxx.tar.gz`;
?>

на это выдаёт
Цитата
Warning: shell_exec(): Cannot execute using backquotes in Safe Mode in /srv/www/htdocs/web6/html/pak.php on line 3

Warning: shell_exec(): Cannot execute using backquotes in Safe Mode in /srv/www/htdocs/web6/html/pak.php on line 4


Цитата(simanyay @ 26.5.2005, 21:41)
может у Админа спросить?

возможно smile

Автор: Mal Hack 26.5.2005, 21:11
Все ясно... У Admin'a Safe Mode smile

Автор: simanyay 26.5.2005, 21:13
Цитата(Mal @ 26.5.2005, 23:11)
У Admin'a Safe Mode smile


smile

Автор: Elfet 27.5.2005, 10:43
Mal Hack, и что тогда делать?

Автор: Mal Hack 27.5.2005, 11:04
Цитата(Elfet @ 27.5.2005, 11:43)
Mal Hack, и что тогда делать?

Просить чтобы отключил или использовать возможности языка, в классах, про которые я говорил выше.

Автор: skalex 27.5.2005, 13:30
Ну и что, что SAFE MODE ... Ведь можно же запускать исполняемые файлы, расположенные в директории, указанной в настройке safe_mode_exec_dir ... Попроси админа хорошенько! smile

Автор: Mal Hack 27.5.2005, 13:38
Цитата(Mace @ 27.5.2005, 14:30)
едь можно же запускать исполняемые файлы, расположенные в директории, указанной в настройке safe_mode_exec_dir

Вряд ли.. Смысла тогда нет.

Автор: skalex 27.5.2005, 14:03
Цитата
Смысла тогда нет

Почему же ?

Автор: Mal Hack 27.5.2005, 14:06
Цитата(Mace @ 27.5.2005, 15:03)
Почему же ?

Это для системных вызовов. Как бы... А не для пользовательских скриптов.

Автор: skalex 27.5.2005, 14:43
Не понял ... А tar - это что ? Скрипт что ли ? smile
Сделать "симлинк" на tar в этой директории ...
Или я туплю ?

Автор: Mal Hack 27.5.2005, 14:47
Цитата(Mace @ 27.5.2005, 15:43)
Сделать "симлинк" на tar в этой директории ...

Дык а кто позволит-то %smile

Автор: skalex 27.5.2005, 14:50
"Позволит - не позволит" - это другой вопрос ... smile
Теоретически же это возможно.

Автор: Elfet 1.6.2005, 15:34
Может ещё у кого есть какие-нибудь скрипты для того чтобы распаковать архив? smile Как ими пользоватся? smile

Автор: Borland_Delphi_6 1.6.2005, 15:50
Вот класс, который давал Mal Hack, только в сборе и чуть обрезанный smile Хорошая вещь, использовать легко! Переименуй файл в .рар

Автор: Elfet 1.6.2005, 22:38
Может я что-то не так делаю? =)

Код

<?php

include "tar.php";

$at = new Archive_Tar("b.tar.gz");
$at->extract();


?>

А хорошо бы ещё документацию smile

Автор: Borland_Delphi_6 2.6.2005, 10:36
Вот как это было у меня:
$tar_object = new Archive_Tar("fge-core.tgz", $compress = "gz");
if ($tar_object->extract("../"))

Насчет доков - скачай с тех сайтов, на которые ссылался Mal Hack... У меня нет smile

Автор: Wowa 2.6.2005, 10:51
Вот, пример скрипта на перле:
Как видите - действительно несколько строк всего. И ничего мудрить не надо.
Код

#!/usr/bin/perl
print "Content-type: text/html\n\n";

print "Start <br>";
#Тут прописываем нужные путь к архиву и путь, куда распаковывать.
system("tar xvfzk ../charum.tar.gz -C ../");

print "Ok! <br>";



Да... Скрипт этот в папку cgi-bin записывать надо и поставить на скрипт права 755

Автор: skalex 2.6.2005, 11:44
Но если SAFE MODE = on, то вероятно работать не будет ...

Автор: Wowa 2.6.2005, 11:48
Mace SAFE MODE - это фича ПХП. В Перле его нет

Автор: skalex 2.6.2005, 11:53
Дык тут вроде речь шла, как это c помощью PHP скрипта сделать ... С перлом согласен, проблем нет ...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)