Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zdalne wywołanie skryptu
Forum PHP.pl > Forum > PHP
yozer2308
Witam! Posiadam skrypt w domenie A, ale potrzebuję go wywołać z domeny B.
Jak go wywołać z domeny B, ale tylko wywołać, bez czekania na odpowiedź, jest takie coś w ogóle możliwe? Użyłbym do tego cURL'a lub file_get_contents, ale one czekają aż serwer odpowie, a ja chcę wysłać tylko zapytanie i zakończyć skrypt.
Prezi2907
Cytat(yozer2308 @ 14.12.2011, 14:48:08 ) *
Witam! Posiadam skrypt w domenie A, ale potrzebuję go wywołać z domeny B.
Jak go wywołać z domeny B, ale tylko wywołać, bez czekania na odpowiedź, jest takie coś w ogóle możliwe? Użyłbym do tego cURL'a lub file_get_contents, ale one czekają aż serwer odpowie, a ja chcę wysłać tylko zapytanie i zakończyć skrypt.


Jak się nie mylę to ajaxem możesz wysłać zapytanie i nie czekać na odpowiedź. Gdy już wyśle się zapytanie to praktycznie Cię nic nie interesuje bo Domena A będzie go po swojej stronie wykonywać i w chwili wysłania go do domeny B nie będzie miał komunikatu odbioru wyniku.

Co te skrypty mają dokładnie robić ?
Fifi209
Odpowiednie użycie fsockopen i będzie latało.
wNogachSpisz
Ja używam czegoś takiego:

  1. <?php
  2.  
  3. function recall($url) {
  4.  
  5. $purl = parse_url($url);
  6.  
  7. $path = isset($purl['path']) ? $purl['path'] : '';
  8. $path .= isset($purl['query']) ? "?{$purl['query']}" : '';
  9. $path .= isset($purl['fragment']) ? "#{$purl['fragment']}" : '';
  10.  
  11. $sock = "GET {$path} HTTP/1.0\r\n";
  12. $sock .= "Host: {$purl['host']}\r\n";
  13. $sock .= "Connection: Close\r\n\r\n";
  14.  
  15. return outsock($purl['host'], $sock, 1);
  16. }
  17.  
  18. function outsock($host, $sock, $timeout) {
  19.  
  20. $fp = fsockopen($host, 80);
  21.  
  22. fwrite($fp, $sock);
  23.  
  24. stream_set_blocking($fp, true);
  25. stream_set_timeout($fp, $timeout);
  26.  
  27. $info = stream_get_meta_data($fp);
  28.  
  29. while ( ! feof($fp) AND ! $info['timed_out'] ) {
  30. fread($fp, 4096);
  31. $info = stream_get_meta_data($fp);
  32. }
  33. fclose($fp);
  34. }
  35.  
  36. ?>
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.