Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Łączenie się z FTP i edycja plików..
Giluś
post 2.04.2011, 20:56:13
Post #1





Grupa: Zarejestrowani
Postów: 377
Pomógł: 9
Dołączył: 2.11.2010

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


Cześć chciałbym się połączyć z serwerem przez ftp i edytować tam pliki za pomocą PHP mniej więcej tak to powinno wyglądać:

Posiadam stronę "1" na której wszystko wykonuje ( przez przeglądarkę ) oraz serwer 2 ( z grą ) i na stronie nr 1 chciałbym się połączyć z ftp strony 2 i mieć możliwość edytowania plików serwera 2....


Jak takie coś zrobić, od razu mówię że na serwerze drugim nie ma Apache zainstalowanego i raczej nie będzie...

A więc moje pytanie jest takie:
Jak połączyć się z serwerem 2 za pomocą ftp i później edytować pliki przez php
Go to the top of the page
+Quote Post
webdice
post 2.04.2011, 21:02:33
Post #2


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




http://pl.php.net/ftp
Go to the top of the page
+Quote Post
Giluś
post 2.04.2011, 21:09:22
Post #3





Grupa: Zarejestrowani
Postów: 377
Pomógł: 9
Dołączył: 2.11.2010

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


  1. <?php
  2. // ustaw podstawowe połączenie
  3. $conn_id = ftp_connect($ftp_server);
  4.  
  5. // zaloguj się nazwą użytkownika i hasłem
  6. $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
  7.  
  8. // sprawdź połączenie
  9. if ((!$conn_id) || (!$login_result)) {
  10. echo "Połączenie FTP się nie powiodło!";
  11. echo "Próbowano połączyć się do $ftp_server jako użytkownik"
  12. . $ftp_user_name;
  13. } else {
  14. echo "Połączony z $ftp_server jako użytkownik $ftp_user_name";
  15. }
  16.  
  17.  
  18. // Tutaj przesyłanie..
  19.  
  20. // zamknij strumień FTP
  21. ftp_close($conn_id);
  22. ?>

Dobra jak dodać linijkę / usunąć ( mam te skrypty i działają na lokalnym )

  1. $dane = "".$zmienna."\n";
  2. $file = $sciezka.$ttt.'/plik.ini';
  3. $fp=fopen("$file", "r+");
  4. $dane=$dane.fread($fp, filesize($file));
  5. rewind($fp);
  6. flock($fp, 2);
  7. fwrite($fp, $dane);
  8. flock($fp, 3);
  9. fclose($fp);



Ten skrypt dodaje do pliku plik.ini - zmienną i jak teraz to wysłać do ftp ?

Ten post edytował Giluś 2.04.2011, 21:09:58
Go to the top of the page
+Quote Post
webdice
post 2.04.2011, 21:11:23
Post #4


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




ftp_put
Go to the top of the page
+Quote Post
Giluś
post 3.04.2011, 08:51:51
Post #5





Grupa: Zarejestrowani
Postów: 377
Pomógł: 9
Dołączył: 2.11.2010

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


  1. <?php
  2. // ustaw podstawowe połączenie
  3. $conn_id = ftp_connect($ftp_server);
  4.  
  5. // zaloguj się nazwą użytkownika i hasłem
  6. $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
  7.  
  8. // sprawdź połączenie
  9. if ((!$conn_id) || (!$login_result)) {
  10. echo "Połączenie FTP się nie powiodło!";
  11. echo "Próbowano połączyć się do $ftp_server jako użytkownik"
  12. . $ftp_user_name;
  13. } else {
  14. echo "Połączony z $ftp_server jako użytkownik $ftp_user_name";
  15. }
  16.  
  17.  
  18. // otwarcie pliku do edycji
  19. $file = 'jakiśplik.txt';
  20. $fp = fopen($file, 'r+');
  21. $dane = "moj_tekst \n";
  22. $dane=$dane.fread($fp, filesize($file));
  23. rewind($fp);
  24. flock($fp, 2);
  25. fwrite($fp, $dane);
  26. flock($fp, 3);
  27.  
  28.  
  29. if (ftp_fput($conn_id, $file, $fp, FTP_ASCII)) {
  30. echo "Pomyślnie przesłano $file\n";
  31. } else {
  32. echo "Wystąpiły problemy w czasie przesyłania $file\n";
  33. }
  34.  
  35.  
  36. // zamknij strumień FTP
  37. ftp_close($conn_id);
  38. fclose($fp);
  39. ?>




Takie coś ( pytam się bo nie mam aktualnie 2 serwerów )

Nie działa za bardzo ten mój kod przy chmodzie 777 na plik edytowany edytuje go ( a ja bym chciał aby edytowało na chmodzie 644 albo 755 )...

A kolejny problem jest taki ze nie przechodzi do 2 linijki, niby mam "moj_tekst\n" a tekst jest jeden obok drugiego...




EDIT:
Poradziłem sobie z linijką w doł, ale nadal nie wiem jak zrobić aby przerabiało mi plik na chmodzie 644 ( próbowałem przed wykonaniem dodania linii zmienić chmod na 777 a później znów na 644 - ale nie mogę zmienić na 777 bo nie mam permitted )


Jednak to zmyla byłą wiadomość ze wszystko działa ( wszystko działało na jednym ftp ), jak się przeniosłem z plikiem ftp.php na inny serwer a plikiem jakistekst.txt na inny serwer to nic sie nie robiło, łączyło się z ftp, a nic więcej tak mój kod wygląda:

  1. <?php
  2. $ftp_serwer = "xxx";
  3. $ftp_nazwa_uzytkownika = "xxx";
  4. $ftp_haslo = "xxx";
  5. $plik_lokalny = 'jakisteskt.txt';
  6. $plik_zdalny = 'jakisteskt.txt';
  7.  
  8. // nawiązanie połączenia lub zakończenie działania skryptu
  9. $conn_id = ftp_connect($ftp_serwer) or die("Nie można połączyć się z $ftp_serwer");
  10.  
  11. // próba logowania
  12. if (ftp_login($conn_id, $ftp_nazwa_uzytkownika, $ftp_haslo)) {
  13. echo "Polączony jako $ftp_nazwa_uzytkownika@$ftp_serwer\n";
  14. } else {
  15. echo "Nie można zalogować się jako $ftp_nazwa_uzytkownika\n";
  16. }
  17. if (ftp_chdir($conn_id, "/")) {
  18. echo "Biezacy katalog to teraz: " . ftp_pwd($conn_id) . "\n";
  19. } else {
  20. echo "Nie powiodla się zmiana katalogu\n";
  21. }
  22.  
  23. // próba pobrania $plik_zdalny i zapisania go do $plik_lokalny
  24. if (ftp_get($conn_id, $plik_lokalny, $plik_zdalny, FTP_BINARY)) {
  25. echo "\nPomyslnie zapisano $plik_lokalny\n";
  26. } else {
  27. echo "Problem.\n";
  28. }
  29.  
  30. // otwarcie pliku do edycji
  31. $file = 'jakisteskt.txt';
  32. $fp = fopen($file, 'r+');
  33. $dane = "moj_tekst
  34. ";
  35. $dane=$dane.fread($fp, filesize($file));
  36. rewind($fp);
  37. flock($fp, 2);
  38. fwrite($fp, $dane);
  39. flock($fp, 3);
  40.  
  41. // próba przesłania $file
  42. if (ftp_fput($conn_id, $file, $fp, FTP_ASCII)) {
  43. echo "Pomyslnie przesłano $file\n";
  44. } else {
  45. echo "Wystąpiły problemy w czasie przesyłania $file\n";
  46. }
  47.  
  48. // zamknięcie połączenia
  49. ftp_close($conn_id);
  50. fclose($fp);
  51. ?>


Macie jakieś pomysły ?

Ten post edytował Giluś 3.04.2011, 09:54:11
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 24.04.2025 - 05:49