(PHP 5)
curl_multi_exec: ejecuta una subconexión del identificador cURL actual
int curl_multi_exec (recurso $mh, int &$still_running)
Procese cada identificador de la pila. Se puede llamar a este método si el identificador necesita leer o escribir datos.
mh
cURL múltiples identificadores devueltos por curl_multi_init().
todavía_en ejecución
Una referencia a un identificador utilizado para determinar si la operación aún se está realizando.
Un código cURL definido en las constantes predefinidas de cURL.
Nota: Esta función solo devuelve errores relacionados con toda la pila de lotes. Es posible que todavía haya problemas con transferencias individuales incluso cuando se devuelve CURLM_OK.
Este ejemplo creará 2 identificadores de cURL, los agregará a un controlador por lotes y los ejecutará en paralelo.
<?php// Crea un par de recursos cURL $ch1 = curl_init();$ch2 = curl_init();// Establece la URL y las opciones correspondientes curl_setopt($ch1, CURLOPT_URL, "http://lxr.php.net / ");curl_setopt($ch1, CURLOPT_HEADER, 0);curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");curl_setopt($ch2, CURLOPT_HEADER, 0);//Crear identificador de cURL por lotes $mh = curl_multi_init();//Agregar 2 identificadores curl_multi_add_handle($mh,$ ch1);curl_multi_add_handle($mh,$ch2);$activo = null;//Ejecutar el identificador por lotes do { $mrc = curl_multi_exec($mh, $active);} while ($mrc == CURLM_CALL_MULTI_PERFORM); while ($active && $mrc == CURLM_OK) { if (curl_multi_select ($mh ) != -1) { hacer { $mrc = curl_multi_exec($mh, $activo } mientras); ($mrc == CURLM_CALL_MULTI_PERFORM); }}//Cerrar todos los identificadores curl_multi_remove_handle($mh, $ch1);curl_multi_remove_handle($mh, $ch2);curl_multi_close($mh);?>