Hasta ahora, cuando hacíamos una petición Curl, utilizábamos el método sencillo, pero cuando queríamos hacer varías llamadas de este tipo, debíamos de utilizar las funciones :
curl_multi_init(); curl_multi_add_handle(); curl_multi_select(); curl_multi_exec(); curl_multi_getcontent(); curl_multi_info_read(); curl_multi_remove_handle();
Con esta librería, nos ahorramos problemas a la vez que simplificamos esta situación. Solo hace falta crearnos una instancia de la clase, a la que le pasaremos el número máximo de respuestas y un array de opciones, y ya podremos utilizarlo para hacer peticiones simultáneas.
Un ejemplo de funcionamiento:
require_once('parallelcurl.php'); $url1 = 'http://www.example.com/'); $url2 = 'http://www.example.com/'); $url3 = 'http://www.example.com/'); // This function gets called back for each request that completes function on_request_done($content, $url, $ch, $search) { ... } $max_requests = 10; $curl_options = array( CURLOPT_SSL_VERIFYPEER => FALSE, CURLOPT_SSL_VERIFYHOST => FALSE ); $parallel_curl = new ParallelCurl($max_requests, $curl_options); // 3 peticiones en paralelo que empiezan simultaneamente $parallel_curl->startRequest($url1, 'on_request_done'); $parallel_curl->startRequest($url2, 'on_request_done'); $parallel_curl->startRequest($url3, 'on_request_done'); $parallel_curl->finishAllRequests();
Vía: codediesel.com