(PHP 5)
curl_multi_exec — Executa a sub-conexão do atual manipulador cURL
Processa cada um dos manipuladores da pilha. Este método pode ser chamado ou não se um manipulador precisa ler ou escrever dados.
Um manipulador múltiplo cURL retornado por curl_multi_init().
Uma referência para uma flag indicando se a operação está em execução.
Um código cURL definido nas Constantes Pré-definidas cURL.
Nota: Isto somente retorna erros referentes a toda pilha. Se um problema ocorre em uma transferência individual está função retorna CURLM_OK.
Exemplo #1 curl_multi_exec() example
Este exemplo irá criar dois manipuladores cURL, e adiciona-los ao multi manipulador, e então executá-los em paralelo.
<?php
// create both cURL resources
$ch1 = curl_init();
$ch2 = curl_init();
// set URL and other appropriate options
curl_setopt($ch1, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");
curl_setopt($ch2, CURLOPT_HEADER, 0);
//create the multiple cURL handle
$mh = curl_multi_init();
//add the two handles
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);
$active = null;
//execute the handles
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);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}
//close the handles
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);
?>