array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'pt_BR', ), 'this' => array ( 0 => 'function.curl-multi-exec.php', 1 => 'curl_multi_exec', ), 'up' => array ( 0 => 'ref.curl.php', 1 => 'Funções cURL', ), 'prev' => array ( 0 => 'function.curl-multi-errno.php', 1 => 'curl_multi_errno', ), 'next' => array ( 0 => 'function.curl-multi-getcontent.php', 1 => 'curl_multi_getcontent', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'pt_BR', 'path' => 'reference/curl/functions/curl-multi-exec.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 5, PHP 7, PHP 8)
curl_multi_exec — Executa as subconexões do manipulador cURL atual
Processa cada um dos manipuladores na pilha. Este método pode ser chamado independentemente de um manipulador precisar ou não ler ou gravar dados.
multi_handle
Um manipulador cURL múltiplo retornado por curl_multi_init().
still_running
Uma referência a um sinalizador para informar se as operações ainda estão em execução.
Um código cURL definido nas Constantes Predefinidas cURL.
Nota:
Isso retorna apenas erros relacionados à pilha múltipla inteira. Ainda pode ter ocorrido problemas em transferências individuais mesmo quando esta função retorna
CURLM_OK
.
Versão | Descrição |
---|---|
8.0.0 |
O parâmetro multi_handle agora espera uma instância de CurlMultiHandle;
anteriormente, um resource era esperado.
|
Exemplo #1 curl_multi_exec() example
Este exemplo criará dois manipuladores cURL, os adicionará a um manipulador múltiplo e os executará de forma assíncrona.
<?php
// Cria dois manipuladores cURL comuns
$ch1 = curl_init();
$ch2 = curl_init();
// Define a URL e outras opções apropriadas
curl_setopt($ch1, CURLOPT_URL, "http://example.com/");
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");
curl_setopt($ch2, CURLOPT_HEADER, 0);
// Cria o manipulador cURL múltiplo
$mh = curl_multi_init();
// Adiciona os dois manipuladores comuns ao manipulador múltiplo
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);
// Executa o manipulador múltiplo
do {
$status = curl_multi_exec($mh, $active);
if ($active) {
// Wait a short time for more activity
curl_multi_select($mh);
}
} while ($active && $status == CURLM_OK);
// Fecha todos os manipuladores
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);
?>