PHP 8.3.4 Released!

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-manipulador 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 controlador irá fazer com que ele tente utilizar HTTP Pipelining quando possível para transferências usando esse controlador. Isso significa que se você adicionar uma segunda requisição que pode utilizar uma conexão já existente, a segunda requisição será transmitida ("piped") na mesma conexão. A partir do cURL 7.43.0 você também pode 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, você pode 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 controladores 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 o servidor pushes e deve ter a seguinte assinatura:
pushfunction(resource $parent_ch, resource $pushed_ch, array $headers): int
parent_ch

O manipulador 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 push.

A função push deve retornar CURL_PUSH_OKse ele pode lidar com o push, 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 Introduzido CURLMOPT_PUSHFUNCTION.
7.0.7 Introduzido CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE, CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE, CURLMOPT_MAX_HOST_CONNECTIONS, CURLMOPT_MAX_PIPELINE_LENGTH e CURLMOPT_MAX_TOTAL_CONNECTIONS.

add a note

User Contributed Notes 1 note

up
0
ryosuke_i_628 at yahoo dot co dot jp
8 years ago
If you want to enable both HTTP/1.1 pipelining and HTTP/2 multiplexing...

<?php
curl_multi_setopt
($mh, CURLMOPT_PIPELINING, 3);
?>

or

<?php
curl_multi_setopt
($mh, CURLMOPT_PIPELINING, CURLPIPE_HTTP1 | CURLPIPE_MULTIPLEX);
?>
To Top