curl_multi_setopt

(PHP 5 >= 5.5.0, PHP 7, PHP 8)

curl_multi_setoptDefine múltiplas opções para cURL

Descrição

curl_multi_setopt(CurlMultiHandle $multi_handle, int $option, mixed $value): bool

Define uma opção no multi-identificador cURL informado.

Parâmetros

multi_handle

Um manipulador cURL múltiplo retornado por curl_multi_init().

option

Uma das constantes CURLMOPT_*.

value

O valor a ser configurado em option.

value deve ser um int para os seguintes valores do parâmetro option:

Opção Configura o value para
CURLMOPT_PIPELINING Passe 1 para habilitar ou 0 para desabilitar. Habilitar Pipelining em um multi-identificador irá fazer com que ele tente utilizar Pipelining HTTP quando possível para transferências usando esse identificador. Isso significa que se for adicionada uma segunda requisição que pode utilizar uma conexão já existente, a segunda requisição será transmitida na mesma conexão. A partir do cURL 7.43.0, pode-se passar 2 para tentar fazer a nova transferência usando uma conexão HTTP/2 já existente se for possível. Passar 3 instrui o cURL a solicitar Pipelining e multiplexação independentemente um do outro. A partir do cURL 7.62.0, definir o bit de Pipelining não tem efeito. Ao invés de usar números inteiros literalmente, pode-se usar as constantes CURLPIPE_* quando disponíveis.
CURLMOPT_MAXCONNECTS Passe um número que será usado como o número máximo de conexões abertas simultaneamente que libcurl pode deixar em cache. Por padrão, o tamanho será aumentado para abranger quatro vezes o número de identificadores adicionados via curl_multi_add_handle(). Quando o cache estiver cheio, o curl fecha o mais antigo para evitar que o número de conexões abertas aumentem.
CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE Passe um número que especifica o limite de tamanho de cada parte para pipelining em bytes.
CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE Passe um número que especifica o limite de tamanho de penalidade para pipelining em bytes.
CURLMOPT_MAX_CONCURRENT_STREAMS O número definido será usado como o número máximo de fluxos concorrentes que cURL deve suportar em conexões que usam HTTP/2. Valores válidos vão de 1 a 2147483647 (2^31 - 1). O valor passado aqui seria honrado com base em outras propriedades de recursos de sistemas. O padrão é 100.
CURLMOPT_MAX_HOST_CONNECTIONS Passe um número que especifica o número máximo de conexões à um único host.
CURLMOPT_MAX_PIPELINE_LENGTH Passe um número que especifica o número máximo de requisições em um pipeline.
CURLMOPT_MAX_TOTAL_CONNECTIONS Passe um número que especifica o número máximo de conexões abertas simultaneamentes.
CURLMOPT_PUSHFUNCTION

Passe um callable que será registrado para manipular envios do servidor que deve ter a seguinte assinatura:

pushfunction(resource $parent_ch, resource $pushed_ch, array $headers): int
parent_ch

O identificador cURL pai (a solicitação feita pelo cliente).

pushed_ch

Um novo identificador cURL para a solicitação enviada.

headers

Os cabeçalhos de promessa de envio.

A função de envio deve retornar CURL_PUSH_OK se ela pode lidar com o envio, ou CURL_PUSH_DENY para rejeitá-lo.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Registro de Alterações

Versão Descrição
8.2.0 Introduzida a constante CURLMOPT_MAX_CONCURRENT_STREAMS.
8.0.0 O parâmetro multi_handle agora espera uma instância de CurlMultiHandle; anteriormente, um resource era esperado.
7.1.0 Introduzida a constante CURLMOPT_PUSHFUNCTION.
7.0.7 Introduzidas as constantes CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE, CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE, CURLMOPT_MAX_HOST_CONNECTIONS, CURLMOPT_MAX_PIPELINE_LENGTH e CURLMOPT_MAX_TOTAL_CONNECTIONS.