[PHP] Jak uruchomić skrypt znajdujący się na innym serwerze za pomocą aktualnie wykonywanego skryptu?
Chcesz podczas wykonywania aktualnego skryptu wykonać inny skrypt znajdujący się na zdalnym serwerze.
Sytuacja, gdy uruchomienie jednego skryptu wymaga uruchomienia innych skryptów znajdujących się na zdalnych serwerach nie zdarzają się zbyt często. Wykorzystując zdalne skrypty można np. lokalnie pobrać plik, a statystyki jego pobrań wygenerować na zdalnym serwerze.
Takie rozwiązanie może bardzo ułatwić komunikację pomiędzy skryptami, tym, bardziej, że aktualny skrypt może wywołać skrypt zdalny z przekazaniem dowolnych parametrów. Zobacz jak tego dokonać.
Aby można było wykonywać skrypty zdalne, musisz mieć włączoną dyrektywę allow_url_fopen w ustawieniach PHP, zapisanych w pliku php.ini:
allow_url_fopen = On
Dzięki włączeniu tej dyrektywy, możesz wywoływać pliki zdalne (korzystając z protokołu http:// lub ftp://) za pomocą funkcji fopen(), include(), include_once(), require() i require_once(). W systemie Windows uruchamianie zdalnych skryptów działa w PHP od wersji 4.3.
Samo uruchomienie zdalnego skryptu jest banalnie proste. Wystarczy otworzyć ten plik do czytania, co spowoduje, że po stronie zdalnego serwera skrypt zostanie wykonany.
<?
$f = fopen("http://www.serwer.pl/skrypt.php", "r");
if ($f) echo "Zdalny skrypt został uruchomiony";
?>
Można też przekazać do skryptu parametry, jak poniżej:
<?
$f = fopen("http://www.serwer.pl/skrypt.php?param1=test¶m2=134", "r");
if ($f) echo "Zdalny skrypt został uruchomiony";
?>
Jeżeli chcesz, aby wynik wykonania zdalnego skryptu został dołączony do aktualnego, możesz użyć polecenia include().
<?
include("http://www.serwer.pl/skrypt.php");
?>
Zdalny serwer wykona skrypt i dołączy wynik do aktualnego skryptu. Zawartość będzie taka sama, jaką można zobaczyć po wpisaniu adresu zdalnego skryptu w okno przeglądarki.
W drugim przypadku również można podać dodatkowe parametry, które zostaną przekazane do zdalnego skryptu.