PHP i zdalne wykonywanie skryptu

0

Czy jest możliwość z jednego hosta/serwera uruchomić plik na drugim hoście/serwerze aby tam (na tym drugim) wykonał jakąś funkcję odnoszącą się do tego drugiego hosta/serwera i zwrócił wynik na hoście pierwszym z którego to było wykonane ?
Czy problem rozwiąże protokół SOAP ?

0

Tak.

SOAP, Web Services, RPC, ale nie zawsze trzeba tak kombinować.

Skrypt wysyła żądanie do adresu http://example.com/test.php który to test.php drukuje na ekranie "1" lub "0" jako wynik swojego działania. Odebrać, co zwróciła zdalna strona można przez proste file_get_contents(). I już.

0

Czyli jeśli dobrze rozumiem:

  1. Na maszynie nr 1 (mojej) pisze skrypt ktory odpala plik: http://2serwer.pl/zrob_cos.php poprzez zwykle wywolanie
  2. skrypt zrob_cos.php robi "cos" na serwerze 2 i wyswietla wynik w przegladarce (na mojej maszynie?)
  3. pobieram wyswietlony wynik (z mojej przegladrki?) za pomoca file_get_contents() (ale skad? bo z tego co wiem, to f-cja ta pobiera z pliku a nie z ekranu)
0

Nie, nie rozumiesz. Twój skrypt może "wywołać http get" na adresie http://2serwer.pl/zrob_cos.php i odczytać odpowiedź strony. Nie potrzeba tu żadnej przeglądarki...

0

Shalom nieco lepiej wytłumaczył.

file_get_contents() pobiera z pliku... ale może też pobrać zawartość pewnej strony internetowej. Wystarczy tę stronę wygenerować (a nawet nie stronę, a na przykład fragment treści).

0

OK, a mógłbym prosić jakiś bardzo prosty przykład aby lepiej zrozumieć o co w tym biega :)

1

Jeden serwer, plik http://example.com/test.php

<?php echo (rand() % 2 == 0)? : "parzysta" : "nieparzysta";
// losuje liczbę losową i wyświetla "parzysta" albo "nieparzysta"
?>

Drugi serwer:

<?php
    $wynik_pierwszego = file_get_contents("http://example.com/test.php");
    echo "Pierwszy serwer zwrócił: $wynik_pierwszego;"
 ?>
0

Już wszystko jasne.
Dzięki :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1