Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zzipowanie folderu na serwerze www
Forum PHP.pl > Forum > Przedszkole
Tomek58
Witam!
Mam na serwerze dosyć duży folder, w którym znajduje się masa plików, chciałbym go przegrać na inny serwer, tak aby nie ściągać go na dysk a potem wgrywać na drugi serwer, bo przy moim łączu zajmie to wieki. W tym celu musiałbym go zzipować więc nasuwa się pytanie czy istnieje taki skrypt dzięki któremu mógłbym zzipować cały folder? Po przeszukaniu google znalazłem skrypty zipujące jeden, lub kilka plików, ale jak zzipować cały folder?
Method
zipowanie, tarowanie &others możesz wykonać z linii poleceń - a zatem nawet poczatkujacy nie powinien mieć większych problemów by wywołać w skrypcie polecenie z linii poleceń.

Krotko mówiąc da się exclamation.gif!

Można się tez posłuzyć do tego celu skonstruowaną bibilioteką http://pl.php.net/zip
Tomek58
Do jednego z serwerów nie mam dostępu przez SSH, więc chcę spakować ten katalog za pomocą PHP. W tym linku co mi podałeś, w przykładach widzę jak spakować dany plik, ale nie wiem dalej jak spakować katalog?
hwao
Istnieje taka możliwość, jest sporo bibliotek przygotowanych do tego typu zadania:

http://articles.techrepublic.com.com/5100-...11-6161314.html

Jeżeli nie masz dostępu do SSH, sprawdź czy z poziomu php się nie da przy pomocy system" title="Zobacz w manualu PHP" target="_manual()
Tomek58
Chcąc sprawdzić czy jest uruchomiona możliwość korzystania z system() piszę skrypt testowy:

Kod
<?php  
  $zip = system(wget);
  ?>


Co zwraca mi: wget: zagubiony URL Użycie: wget [OPCJE]... [URL]... Spróbuj wget --help' po więcej opcji.
Czyli opcja system chyba działa?

Ale gdy wrzucę:
Kod
<?php
  $sFileName = 'top.tar.gz';  
  $sPathName = 'top/';    
  system('tar zcf ' . $sFileName . ' ' . $sPathName);
  ?>


Wyskakuje:
Kod
[b]Warning[/b]:  Unexpected character in input:  ''' (ASCII=39) state=1 in [b]/home/strona/ftp/zip.php[/b] on line [b]4[/b]


EDIT: Chyba rozwiązałem problem, poprawiłem kod na następujący:

Kod
<?php  
$sFileName = 'top.tar.gz';  
$sPathName = 'top/';    
system("tar zcf ' . $sFileName . ' ' . $sPathName '");
?>


I utworzyło tara smile.gif

Przepraszam że post pod postem, ale kolejny problem. Gdy chciałem spakować większy katalog, po odpaleniu skryptu na serwerze pojawił się plik: . top.tar.gz . którego nie da się usunąć, a archwium nie powstało sad.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.