Cuando realizamos una petición CURL normalmente usamos el método sencillo: hacer petición, esperar respuesta. ¿Pero que ocurre cuando queremos hacer varias peticiones de forma simultánea? por ejemplo para un crawler o una aplicación parecida. En estos casos tenemos que echar mano de curl_multi_*.
Si nos encontramos en esta situación podemos echar mano de la clase ParallelCurl, que de forma muy sencilla nos ayudará en nuestra tarea:
$pc = new ParallelCurl($max_requests, $curl_options);
// 3 peticiones en paralelo que empiezan simultaneamente
$pc->startRequest($url1, 'on_request_done');
$pc->startRequest($url2, 'on_request_done');
$pc->startRequest($url3, 'on_request_done');
$pc->finishAllRequests();
Parallel cURL execution in PHP
Vía / PHPDeveloper.org