Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Kopia FTP
sky993
post
Post #1





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 21.07.2011

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


Nie podałeś ścieżki do pliku w $zip->addFile()
Go to the top of the page
+Quote Post
sky993
post
Post #3





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 21.07.2011

Ostrzeżenie: (0%)
-----


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)?
Go to the top of the page
+Quote Post
CuteOne
post
Post #4





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


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. }
Go to the top of the page
+Quote Post
sky993
post
Post #5





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 21.07.2011

Ostrzeżenie: (0%)
-----


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"

Ten post edytował sky993 23.09.2011, 19:51:45
Go to the top of the page
+Quote Post
CuteOne
post
Post #6





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


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

Ten post edytował CuteOne 23.09.2011, 20:06:10
Go to the top of the page
+Quote Post
sky993
post
Post #7





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 21.07.2011

Ostrzeżenie: (0%)
-----


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.

Ten post edytował sky993 23.09.2011, 20:18:43
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 26.09.2025 - 10:27