Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Kopia FTP
Forum PHP.pl > Forum > Przedszkole
sky993
Chce wykonac kopie z serwera FTP(FilleZila na xamppie);
  1. <?php
  2.  
  3. //Skrypt wykonuje kopie zapasowa plikow na serwerze ftp.
  4.  
  5. //Ustawiamy zmienne oraz laczymy sie z serwerem
  6. $host='127.0.0.1';
  7. $login='login';
  8. $haslo='haslo';
  9. $date=date('Y-m-d');
  10.  
  11. $ftp=@ftp_connect($host) or die("Nie udalo sie nawiazac polaczenia z serwerem!");//nawiazalismy polaczenie ewentualnie
  12. //wyrzucamy blad o nie nawiazaniu polaczenia
  13.  
  14. //Logujemy sie do serwera
  15.  
  16. @ftp_login($ftp,$login,$haslo) or die("Nie udalo sie zalogowac");
  17.  
  18. //sprawdzamy zawartosc serwera w podanym katalogu
  19.  
  20. $zawartosc=ftp_nlist($ftp, '//12');
  21.  
  22.  
  23. //Teraz dodajemy pliki do archiwum
  24.  
  25. $zip=new ZipArchive();//archiwum
  26.  
  27. //Dodajemy kazdy plik z tablicy do archiwum za pomoca petli foreach
  28. if($zip->open("kopia.zip",ZipArchive::CREATE))//tworzymy plik zip
  29. {//if $zip->open
  30. foreach($zawartosc as $plik)
  31. {
  32. echo $plik.'<br>';
  33. $zip->addFile($plik);
  34. }
  35.  
  36. $zip->addFromString("info.txt", "Kopia zostala wykonana dnia $date");
  37. }//end $zip->open
  38.  
  39.  
  40.  
  41.  
  42.  

Polaczenie nawiazane, niestety nie dodaje plikow do archiwum i nic sie nie tworzy. Skrypt dobiega do petli foreach poniewaz wyswietla mi nazwy(wraz ze scieska) plikow. Na serwerze znajduje sie jeden katalog "12" i w nim sa wszystkie pliki.
CuteOne
Nie podałeś ścieżki do pliku w $zip->addFile()
sky993
echo "plik" zwraca np cos takiego:
../12/2.txt
Czy to nie jest juz pelna sciezka( czy musi byc tez wraz z c:\i tak dalej)?
CuteOne
sprawdź ;D

ps. sprawdź jeszcze czy taki zapis przejdzie
  1. $i=0;
  2. foreach($zawartosc as $plik){
  3. $zip->addFile('nowy_plik_'.$i++.'.txt', $plik);
  4. }
sky993
1.Nie dziala Foreach zwraca blad
2. Nie dziala.

Cos tu nie gra^^.Czekam na dalsze sugestie.
Z gory zaznaczam ze probowalem podawac w przerózny sposob sciezke "./12"
CuteOne
a próbowałeś dodać plik z tego samego folderu co skrypt? bez z czytywania ścieżek, nazw plików itp. itd. ?

ps. ścieżkę zmieniasz w pętli nie przed nią.... omfg
sky993
Powiem tak. Juz pisalem podobny skrypt jakiś czas temu, ale napotkalem podobny problem, daltego zdecydowalem sie caly folder 12 przeniesc na dysk i tu wykonac kopie. Dzis odpalam skrypt i dzialal ale postanowilem go zmodyfikowac zeby bylo wygodniej.
@edit
to logi z FileZila
000103)2011-09-23 21:08:59 - (not logged in) (127.0.0.1)> Connected, sending welcome message...
(000103)2011-09-23 21:08:59 - (not logged in) (127.0.0.1)> 220 FileZilla Server version 0.9.37 beta written by Tim Kosse (Tim.Kosse@gmx.de) Please visit http://sourceforge.
(000103)2011-09-23 21:08:59 - (not logged in) (127.0.0.1)> USER Dawid
(000103)2011-09-23 21:08:59 - (not logged in) (127.0.0.1)> 331 Password required for dawid
(000103)2011-09-23 21:08:59 - (not logged in) (127.0.0.1)> PASS ********
(000103)2011-09-23 21:08:59 - dawid (127.0.0.1)> 230 Logged on
(000103)2011-09-23 21:08:59 - dawid (127.0.0.1)> TYPE A
(000103)2011-09-23 21:08:59 - dawid (127.0.0.1)> 200 Type set to A
(000103)2011-09-23 21:08:59 - dawid (127.0.0.1)> PORT 127,0,0,1,10,228
(000103)2011-09-23 21:08:59 - dawid (127.0.0.1)> 200 Port command successful
(000103)2011-09-23 21:08:59 - dawid (127.0.0.1)> NLST ../12
(000103)2011-09-23 21:08:59 - dawid (127.0.0.1)> 150 Opening data channel for directory list.
(000103)2011-09-23 21:08:59 - dawid (127.0.0.1)> 226 Transfer OK
(000103)2011-09-23 21:08:59 - dawid (127.0.0.1)> disconnected.

Juz dziala.
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.