PHP 8.4.0 RC2 available for testing

curl_multi_setopt

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

curl_multi_setoptSetzt eine cURL-Multi-Option

Beschreibung

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

Setzt eine Option für das angegebene cURL-Multi-Handle.

Parameter-Liste

multi_handle

Ein von curl_multi_init() zurückgegebenes cURL-Multihandle.

option

Eine der CURLMOPT_* Konstanten.

value

Der zu option zu setzende Wert.

value sollte ein int sein für die folgenden Werte der option Parameter:

Option value setzen auf
CURLMOPT_PIPELINING Übergib 1 zum aktivieren oder 0 zum deaktivieren. Das Aktivieren von multi-Handles wird zu dem Versuch führen, PHP Pipelining so weit wie es für Transfers, die dieses Handle verwenden, möglich ist. Das bedeutet, dass wenn Sie eine zweite Anfrage hinzufügen, die eine bereits existierende Verbindung verwendet, wird diese auf der selben Verbindung "gepiped". Von cURL 7.43.0 an ist der Wert eine Bitmaske, und es kann ebenfalls 2 übergeben werden, um zu versuchen, den neuen Transfer über eine bestehende HTTP/2 Verbindung zu multiplexen, falls möglich. Das Übergeben von 3 weist cURL an, Pipelining und Multiplexing unabhängig voneinander zu versuchen. Von cURL 7.62.0 an hat das Setzen des Pipelining-Bit keine Wirkung. Anstelle der Interger-Literale können ebenfalls die CURLPIPE_* Konstanten verwendet werden, falls verfügbar.
CURLMOPT_MAXCONNECTS Übergeben Sie eine Zahl, die als die maximale Menge an gleichzeitig geöffneten Verbindungen verwendet wird, die libcurl zwischenspeichern kann. Standardmäßig wird die Anzahl erhöht, so dass viermal soviele Verbindungen zwischengespeichert werden können, wie Handles mit curl_multi_add_handle() hinzugefügt wurden. Wenn der Cache gefüllt ist, schließt cURL die älteste Verbindung im Cache, um das Anwachsen der offenen Verbindungen zu vermeiden.
CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE Eine Zahl, die den Chunklängenschwellenwert für das Pipelining in Bytes angibt, ist zu übergeben.
CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE Eine Zahl, die den Größenschwellenwert für das Pipelining in Bytes angibt, ist zu übergeben.
CURLMOPT_MAX_CONCURRENT_STREAMS Die angegebene Zahl wird als maximale Anzahl von gleichzeitigen Streams für eine Verbindung verwendet, die cURL bei Verbindungen über HTTP/2 unterstützen sollte. Gültige Werte reichen von 1 bis 2147483647 (2^31 - 1). Der hier übergebene Wert wird in Abhängigkeit von anderen Eigenschaften der Systemressourcen berücksichtigt. Standard ist 100.
CURLMOPT_MAX_HOST_CONNECTIONS Eine Zahl, die die Höchstanzahl von Verbindungen zu einem einzelnen Host angibt, ist zu übergeben.
CURLMOPT_MAX_PIPELINE_LENGTH Eine Zahl, die die Höchstanzahl von Requests in einer Pipeline angibt, ist zu übergeben.
CURLMOPT_MAX_TOTAL_CONNECTIONS Einze Zahl, die die Höchstanzahl von gleichzeitig offenen Verbindungen angibt, ist zu übergeben.
CURLMOPT_PUSHFUNCTION

Ein callable, das registriert wird, um Server-Pushs zu behandeln, ist zu übergeben; es sollte folgende Signatur haben:

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

Das Eltern-cURL-Handle (der vom Client durchgeführte Request).

pushed_ch

Ein neues cURL-Handle für den gepushten Request.

headers

Die Push-Promise-Header.

Die Push-Funktion soll entweder CURL_PUSH_OK zurückgeben, falls es den Push behandeln kann, oder CURL_PUSH_DENY, um diesen zurückzuweisen.

Rückgabewerte

Gibt bei Erfolg true zurück. Bei einem Fehler wird false zurückgegeben.

Changelog

Version Beschreibung
8.2.0 CURLMOPT_MAX_CONCURRENT_STREAMS wurde eingeführt.
8.0.0 multi_handle erwartet nun eine CurlMultiHandle-Instanz; vorher wurde eine Ressource erwartet.
7.1.0 CURLMOPT_PUSHFUNCTION wurde eingeführt.
7.0.7 CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE, CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE, CURLMOPT_MAX_HOST_CONNECTIONS, CURLMOPT_MAX_PIPELINE_LENGTH und CURLMOPT_MAX_TOTAL_CONNECTIONS wurden eingeführt.

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