Showing posts with label simultaneous request in curl.multiple requests in curl.. Show all posts
Showing posts with label simultaneous request in curl.multiple requests in curl.. Show all posts

Saturday, April 13, 2013

Multiple Request in PHP CURL.


Multiple Request in PHP CURL.

We have used multiple urls in curl .Please use this code.

I have search many code.just given single  url run in curl.

but i got one url from this code for Multiple request in CURL.

that url address share in bottom of this post.

  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;
    }


  $data = array("http://www.example.com/pictures", "http://www.example.com/videos","http://www.example.com/clear-cache");
   $r = multiRequest($data);




       if you want to run many more urls in curl.
       just add the array values.its enough for implement the code.
  



Cheers and thanks to  http://www.phpied.com/simultaneuos-http-requests-in-php-with-curl/ .