(PHP 5)
curl_multi_exec — executa uma subconexão do identificador cURL atual
int curl_multi_exec (recurso $mh, int &$still_running)
Processe cada identificador na pilha. Este método pode ser chamado se o identificador precisar ler ou gravar dados.
mh
Vários identificadores cURL retornados por curl_multi_init().
ainda_em execução
Uma referência a um identificador usado para determinar se a operação ainda está sendo executada.
Um código cURL definido nas constantes cURL predefinidas.
Nota: Esta função retorna apenas erros relacionados a toda a pilha de lotes. Ainda pode haver problemas com transferências individuais mesmo quando CURLM_OK for retornado.
Este exemplo criará 2 identificadores cURL, os adicionará a um manipulador de lote e os executará em paralelo.
<?php// Crie um par de recursos cURL $ch1 = curl_init();$ch2 = curl_init();// Defina a URL e as opções correspondentes 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);//Criar identificador cURL em lote $mh = curl_multi_init();//Adicionar 2 identificadores curl_multi_add_handle($mh ,$ ch1);curl_multi_add_handle($mh,$ch2);$ativo = null;//Executar identificador de lote do { $mrc = curl_multi_exec($mh, $active);} while ($mrc == CURLM_CALL_MULTI_PERFORM);while ($active && $mrc == CURLM_OK) { if (curl_multi_select ($mh ) != -1) { do { $mrc = curl_multi_exec($mh, $active }); ($mrc == CURLM_CALL_MULTI_PERFORM }}//Fechar todos os identificadores curl_multi_remove_handle($mh, $ch1);curl_multi_remove_handle($mh, $ch2);curl_multi_close($mh);?>