Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Automatyczne pobieranie pliku na serwer
Forum PHP.pl > Forum > PHP
kamil2007
Chce aby na mój serwer pobierało mi plik kilka razy o danej godzinie. Czy jest to możliwe?
PawelC
Cykliczne odpalanie -> cron
Skąd ma ten plik pobierać, z zewnętrznego serwera?
kamil2007
Bedzie to proces pobierania z serwera na serwer. Jest on zewnętrzny.
erix
wget
kamil2007
wget to jest program czy skrypt?

Jeśli można proszę o wytłumaczenie jak to zrobić.

Edit///

Chciałem dodać że potrzebuje jeszcze użyć loginu oraz hasła oraz czy jeśli ten plik będzie tej samej nazwy to podmieni mi go? czy będzie kilka tych samych plików?
PawelC
Kod: http://www.daniweb.com/forums/post346171-2.html
Cały temat: http://www.daniweb.com/forums/thread75476.html#

Login i hasło możesz przesłać przy użyciu http://pl2.php.net/manual/pl/book.curl.php
kamil2007
Cytat(ExPlOiT @ 10.06.2009, 21:12:28 ) *


A jak zrobić żeby te pliki pobierać np 200 razy i później znowu inny link i tez 200 razy?
PawelC
Np zrobić sobie w bazie tabele np pliki a w niej kolumny id, plik i pobrano.
Id wiadomo o co chodzi, w plik daj nazwe pliku, a w pobrano ile razy został dany plik został pobrany, za każdym razem jak zostanie odpalony skrypt i pobrany plik to zwiększ wartość w kolumnie pobrano o 1. I sprawdzaj w pętl ile razy został pobrany dany plik, jeżeli wartość wyniesie 200, to zmieni link.
kamil2007
Cytat(ExPlOiT @ 10.06.2009, 21:29:04 ) *
Np zrobić sobie w bazie tabele np pliki a w niej kolumny id, plik i pobrano.
Id wiadomo o co chodzi, w plik daj nazwe pliku, a w pobrano ile razy został dany plik został pobrany, za każdym razem jak zostanie odpalony skrypt i pobrany plik to zwiększ wartość w kolumnie pobrano o 1. I sprawdzaj w pętl ile razy został pobrany dany plik, jeżeli wartość wyniesie 200, to zmieni link.

A automatycznie nie da sie ustawić aby pobierało 200 razy?
PawelC
Cronem wszystko zrobisz smile.gif
Napisz sobie skrypt taki jak Ci mówiłem, a cron resztę załatwi.
kamil2007
Szukam Cronu ale niewiem czy to jest program exe czy po prostu jakiś skrypt (jestem zielony w te sprawy) ;/
erix
Jeśli masz współdzielony hosting, to sprawdź w panelu...

Poszukanie w google też nie zaszkodzi.
kamil2007
Jak zrobić aby wget było tak aby ten plik pobierało i pużniej usuwało i tak w kółko. Oraz żeby tylko 255 razy pobierało plik.

Nikt nie wie (google mi nic nie mówi)
Przemo_
rapidshare się kłania ...

Podpowiedź :

ściąganie pliku o danej godzinie -> kasowanie go -> oczekiwanie na dalszy time do pobrania itp

Kodu raczej nie dostaniesz, proponuję poszukać na google pod frazą "foldery php" oraz kilka if'ów i wszystko masz smile.gif - tam będzie wszystko czego potrzebujesz.

Pozdrawiam P.
kamil2007
ifów tzn?
Przemo_
Instrukcja if

// z tym, że ja te pobieranie to bym zrobił w inny sposób niż kolega wyżej ( bez mysql )
kamil2007
Ok dzieki moze coś znajde jak narazie są jakieś skrypty na foldery ale niekumam po co mi folder? Jak narazie próbuje sposobu cron + wget
Przemo_
A po to, byś mógł potem skasować plik z serwera. Tam są nie tylko komendy odnośnie folderów ale także plików. A z tego co zrozumiałem chcesz kasować plik po ściągnięciu.
Jak już mówiłem można to zrobić na wiele sposobów - Ty wybierz dla Ciebie najlepszy.

Pozdrawiam P.
kamil2007
Da się to zrobić aby ten plik można było pobrać kilka razy i póżniej znowu inny plik kilka razy (oczywiście cały czas automatycznie plik by sie kasował i pobierał.

  1. <?php
  2.  
  3. // define some variables
  4. $local_file = '54654.rar(nazwa pliku który chce pobrać';
  5. $server_file = 'server.zip (niewiem co tutaj)';
  6.  
  7. // set up basic connection
  8. $conn_id = ftp_connect($Link co ma mi plik pobierać);
  9.  
  10. // login with username and password
  11. $login_result = ftp_login($ftp://kamil(adres ftp mojego), $login do ftp, $hasło do ftp strony);
  12.  
  13. // try to download $server_file and save to $local_file
  14. if (ftp_get($Tutaj daje adres strony z której plik chce pobierać, $nazwa pliku, $ftp://kamil..(tutaj gdzie ma mi ten plik zapisywać), FTP_BINARY)) {
  15.    echo "Successfully written to $local_file\n";
  16. } else {
  17.    echo "There was a problem\n";
  18. }
  19.  
  20. // close the connection
  21. ftp_close($Strone skąd plik pobieram tutaj dałem);
  22.  
  23. ?>


Tutaj mam skrypt do wget ale nie działa mi ponieważ wyskakuje taki błąd
Cytat
Parse error: syntax error, unexpected ':' in /home/Kamil/domains/kamil.pign.pl/public_html/-----/--/ on line 8
erix
Mamy Ci składnię sprawdzać? Kpisz chyba...
kamil2007
Nie wiem o co ci chodzi ja tylko chce się dowiedzieć dlaczego mi ten błąd wyskakuje... Tam napisałem co wpisałem w skrypcie i chce się dowiedzieć czy w każdym miejscu wpisałem poprawną rzecz jeśli gdzieś ma być coś innego proszę mi powiedzieć.
erix
Używaj IDE ze sprawdzaniem składni.
kamil2007
@Up czy to jest program który sprawdza błędy bo na google wyskakuje mi "Sprawdzanie podlaczen IDE spod programu" I nie wiem czy to to.
szagi3891
  1. <?php
  2.  
  3. $identyfikator_strumienia = ftp_connect("nazwa_serwera", 21, 10) or die('przez 10 sekund nie mogłem się połączyć z serwerem ftp');
  4.  
  5. ftp_login($identyfikator_strumienia, "nazwa_uzytkownika" , "haslo_uzytkownika") or die('nie udało mi się zalogować');
  6.  
  7. print 'jeśli widzisz ten komunikat to znaczy że się udało połaczyć i zalogować z serwerem';
  8.  
  9. ftp_pasv($identyfikator_strumienia, true) or die('nie udało się przełączyć na tryb pasywny');
  10.  
  11. if (ftp_get($identyfikator_strumienia, 'pobrany_plik.txt', './index.php', FTP_BINARY)) {
  12.    print 'udało się pobrać plik';
  13. } else {
  14.    echo 'nie udało się pobrać pliku';
  15. }
  16.  
  17. ftp_close($identyfikator_strumienia) or die('coś poszło nie tak przy zamykaniu strumienia');
  18. ?>


W tym skrypcie musisz podmienić tylko swoimi wartościami następujące miejsca :

nazwa_serwera
nazwa_uzytkownika
haslo_uzytkownika

Magiczne słowo które musisz sobie zapamiętać to resource (w przykładowym skrypcie to zmienna $identyfikator_strumienia)smile.gif W przypadku łączenia się z różnego typu danymi zazwyczaj otrzymujesz z funkcji służącej do nawiązania połączenia "identyfikator zasobu" na którym wykonujesz jakieś operacja (pobierania/wysyłanie danych/lub coś tam jeszcze ...). Taki zasób najlepiej zamknąć na samym końcu skryptu po to aby się coś nie nasyfiło potem (wyczerpane połączenia bądź cokolwiek).
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.