curl_multi_exec stops if one url is 404, how can I change that?

Posted by Rob on Stack Overflow See other posts from Stack Overflow or by Rob
Published on 2010-04-27T21:24:58Z Indexed on 2010/04/27 22:33 UTC
Read the original article Hit count: 255

Filed under:
|

Currently, my cURL multi exec stops if one url it connects to doesn't work, so a few questions:

1: Why does it stop? That doesn't make sense to me.

2: How can I make it continue?

EDIT: Here is my code:

$SQL = mysql_query("SELECT url FROM shells") ;
$mh = curl_multi_init();
$handles = array();
while($resultSet = mysql_fetch_array($SQL)){
  //load the urls and send GET data
  $ch = curl_init($resultSet['url'] . $fullcurl);
  //Only load it for two seconds (Long enough to send the data)
  curl_setopt($ch, CURLOPT_TIMEOUT, 5);
  curl_multi_add_handle($mh, $ch);
  $handles[] = $ch;
}

// Create a status variable so we know when exec is done.
$running = null;
//execute the handles
do {
  // Call exec.  This call is non-blocking, meaning it works in the background.
  curl_multi_exec($mh,$running);
  // Sleep while it's executing.  You could do other work here, if you have any.
  sleep(2);
  // Keep going until it's done.
} while ($running > 0);

// For loop to remove (close) the regular handles.
foreach($handles as $ch)
{
  // Remove the current array handle.
  curl_multi_remove_handle($mh, $ch);
}
// Close the multi handle
curl_multi_close($mh);

© Stack Overflow or respective owner

Related posts about curl

Related posts about php