Witam, mam pewien problem. Inicjalizuję multi cURL'a, podpinam do niego np 100 obiektów curla (curl_multi_add_handle), następnie curl_multi_exec w pętli, wszystko fajnie, żądania lecą sobie równolegle ale jest jedna wada, dopiero mogę pobrać odpowiedź (chyba dopiero, po to jest ten temat) gdy wszystkie żądania są zakończone, a czy jest sposób aby zaraz gdy jakiekolwiek z żądań się zakończy to wywoła się funkcja/wykona kawałek kodu czyli

  1. $nodes = array('http://www.google.com', 'http://www.microsoft.com', 'http://www.rustyrazorblade.com');
  2. $node_count = count($nodes);
  3.  
  4. $curl_arr = array();
  5. $master = curl_multi_init();
  6.  
  7. for($i = 0; $i < $node_count; $i++)
  8. {
  9. $url =$nodes[$i];
  10. $curl_arr[$i] = curl_init($url);
  11. curl_setopt($curl_arr[$i], CURLOPT_RETURNTRANSFER, true);
  12. curl_multi_add_handle($master, $curl_arr[$i]);
  13. }
  14.  
  15. do {
  16. curl_multi_exec($master,$running);
  17.  
  18. JEŚLI jakieś żadanie zakończone WTEDY
  19. {
  20. jakiś kawałek kodu z możliwością odwołania się do zakończonego żądania - curl_multi_getcontent
  21. }
  22.  
  23. } while($running > 0);
  24.  
  25. echo 'done';