Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 13.08.2011, 18:02
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

а можно сразу в архив это все пихать, в место того что я написал внизу кода, сделай так:
<?php
$directory_to_pack = dirname( __FILE__ ).'/!';

$tar = gzopen("mytar.tar.gz", "wb");
$files = getRecursiveDir( $directory_to_pack );
foreach( $files as $record ) {
	TarAddHeader( $tar, $directory_to_pack.'/'.$record, $record );
	TarWriteContents( $tar, $directory_to_pack.'/'.$record );
}
TarAddFooter( $tar );
gzclose( $tar );

?>
И все проблемы, на выходе получишь zlib архив
Ответить с цитированием
  #12 (permalink)  
Старый 13.08.2011, 18:09
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

хотя возможно придеться заменить fwrite в функциях:
TarAddHeader
TarWriteContents
TarAddFooter
на gzwrite хотя как не удивительно, даже с обчным работает, ну и метод сжати можешь указать например так:
$tar = gzopen("mytar.tar.gz", "wb9");
где цифра 9 указывает на уровень зжатия
Ответить с цитированием
  #13 (permalink)  
Старый 13.08.2011, 18:12
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от ваый
так а почему бы не сделать zip архив в 5 строчек. или обязательно нужен gzip?
Проблема в том что ему и писать то ничего не надо, все за него давно написано (я не про себя я про то что на офф сайте написано). Так что все что нужно было это написать функцию которая считывает директории.
Ответить с цитированием
  #14 (permalink)  
Старый 13.08.2011, 18:29
Аватар для cuberboy
Профессор
Отправить личное сообщение для cuberboy Посмотреть профиль Найти все сообщения от cuberboy
 
Регистрация: 20.07.2009
Сообщений: 202

на зип архиве не стал делать потому что ясно как там делать, думал на гз есть что то подобное, вот решил разобраться .... "разобрался", на вскидку ,после пояснений и примеров devote(спасибо),понял что куда и откуда. но что то как то....много кода и муторно, надо капать паки и понимать что за заголовки чего куда откуда, в целом не совсем понимаю чего происходит...то есть саму идею
Ответить с цитированием
  #15 (permalink)  
Старый 13.08.2011, 18:47
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от cuberboy
но что то как то....много кода и муторно, надо капать паки и понимать что за заголовки чего куда откуда, в целом не совсем понимаю чего происходит...то есть саму идею
Ну вы народ смешные ппц, все вам подавай готовое и на блюдечке, помню времена когда приходилось писать целые классы ради того что бы упаковать в тот же ZIP архив, а щас вам разрабы столько всего понаделали что все делается одной какой нить функцией, и тем не менее вам этого мало... По мне так наоборот лучше когда я могу сам все контролировать и делать изменения в местах на низком уровне, это дает и опыт и понимание всего алгоритма, что и как работает...
Ответить с цитированием
  #16 (permalink)  
Старый 13.08.2011, 19:22
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

поправил свой пример, там в функции TarWriteContents отсутствовало закрытие файла, так же и в getRecursiveDir отсутствовало закрытие директории. Такое бывает когда быстро пишешь, что нить да упустишь.
Ответить с цитированием
  #17 (permalink)  
Старый 14.06.2013, 18:00
Профессор
Отправить личное сообщение для platedz Посмотреть профиль Найти все сообщения от platedz
 
Регистрация: 15.08.2012
Сообщений: 285

А как ее распаковать?
Ответить с цитированием
  #18 (permalink)  
Старый 15.06.2013, 15:05
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Зачем все эти абстракции если можно сделать куда проще:

// Упаковать
exec('tar -zcvf folder.tar.gz folder');

// Распаковать:
exec('tar -zxvf folder.tar.gz');


На всякий:

for i in tar, zip, gunzip, unzip bzip2 bunzip2; \ 
    do \
       man $i; \
    done;

Последний раз редактировалось monolithed, 15.06.2013 в 15:11.
Ответить с цитированием
  #19 (permalink)  
Старый 15.06.2013, 15:45
Профессор
Отправить личное сообщение для platedz Посмотреть профиль Найти все сообщения от platedz
 
Регистрация: 15.08.2012
Сообщений: 285

У меня нет доступа к exec на том хостинге, где мне нужно это сделать
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
Запуск выполнения PHP при нажатие на кнопку??? Abibas220 Общие вопросы Javascript 1 05.01.2011 12:05
Как передать картинку из javascript в php KIVagant AJAX и COMET 3 12.05.2010 11:54
jquery, php, json… ? незнайка jQuery 4 06.02.2010 01:45
javascript и php (Вопрос) Гауляйтер Общие вопросы Javascript 3 06.05.2009 09:23