How to open multiple URLs with cURL without delay How to open multiple URLs with cURL without delay curl curl

How to open multiple URLs with cURL without delay


Your solution would be simultaneous cURL HTTP requests.
For faster implementation, you can use this function (thanks to phpied):

function multiRequest($data, $options = array()) {  // array of curl handles  $curly = array();  // data to be returned  $result = array();  // multi handle  $mh = curl_multi_init();  // loop through $data and create curl handles  // then add them to the multi-handle  foreach ($data as $id => $d) {    $curly[$id] = curl_init();    $url = (is_array($d) && !empty($d['url'])) ? $d['url'] : $d;    curl_setopt($curly[$id], CURLOPT_URL,            $url);    curl_setopt($curly[$id], CURLOPT_HEADER,         0);    curl_setopt($curly[$id], CURLOPT_RETURNTRANSFER, 1);    // post?    if (is_array($d)) {      if (!empty($d['post'])) {        curl_setopt($curly[$id], CURLOPT_POST,       1);        curl_setopt($curly[$id], CURLOPT_POSTFIELDS, $d['post']);      }    }    // extra options?    if (!empty($options)) {      curl_setopt_array($curly[$id], $options);    }    curl_multi_add_handle($mh, $curly[$id]);  }  // execute the handles  $running = null;  do {    curl_multi_exec($mh, $running);  } while($running > 0);  // get content and remove handles  foreach($curly as $id => $c) {    $result[$id] = curl_multi_getcontent($c);    curl_multi_remove_handle($mh, $c);  }  // all done  curl_multi_close($mh);  return $result;}

And use it like this:

$data = array(  'http://search.yahooapis.com/VideoSearchService/V1/videoSearch?appid=YahooDemo&query=Pearl+Jam&output=json',  'http://search.yahooapis.com/ImageSearchService/V1/imageSearch?appid=YahooDemo&query=Pearl+Jam&output=json',  'http://search.yahooapis.com/AudioSearchService/V1/artistSearch?appid=YahooDemo&artist=Pearl+Jam&output=json');$r = multiRequest($data);echo '<pre>';print_r($r);

Hope it helps.
Also read this.