Heim  >  Artikel  >  Backend-Entwicklung  >  Einführung in die PHP-Funktion – curl_multi_add_handle(): Fügen Sie einer Sitzung mit mehreren Handles ein cURL-Handle hinzu

Einführung in die PHP-Funktion – curl_multi_add_handle(): Fügen Sie einer Sitzung mit mehreren Handles ein cURL-Handle hinzu

PHPz
PHPzOriginal
2023-07-27 09:03:301162Durchsuche

Einführung in die PHP-Funktion – curl_multi_add_handle(): Fügen Sie einer Sitzung mit mehreren Handles ein cURL-Handle hinzu.

Bei der Entwicklung von Netzwerkanforderungen ist die Curl-Funktionsbibliothek in PHP eine der am häufigsten verwendeten Werkzeugbibliotheken. Es bietet viele Funktionen zum Ausführen einer Vielzahl von HTTP-Anfragen, einschließlich GET- und POST-Anfragen, Festlegen von Anforderungsheadern, Senden und Empfangen von Cookies usw.

Bei der Verwendung der Curl-Funktionsbibliothek kommt es häufig vor, dass mehrere Anfragen gleichzeitig gesendet werden. Wenn für jede Anfrage ein separates cURL-Handle verwendet wird, werden Ressourcen verschwendet. Zu diesem Zeitpunkt können Sie die von PHP bereitgestellte Funktion „curl_multi_add_handle()“ verwenden, um einer Sitzung mehrere cURL-Handles zur Verwaltung hinzuzufügen. Die Syntax der Funktion

curl_multi_add_handle() lautet wie folgt:

resource curl_multi_add_handle ( resource $mh , resource $ch )

Der Parameter $mh stellt das initialisierte cURL-Sitzungshandle dar und $ch stellt das neu hinzuzufügende cURL-Sitzungshandle dar. Diese Funktion fügt das Handle $ch zum Handle $mh hinzu und gibt ein cURL-Multihandle zurück.

Das Folgende ist ein Beispielcode, der die Funktion „curl_multi_add_handle()“ verwendet:

<?php
$mh = curl_multi_init();  // 初始化一个cURL会话句柄

$ch1 = curl_init();
curl_setopt($ch1, CURLOPT_URL, "https://www.example.com/api1");
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);  // 设置返回值不直接输出
curl_multi_add_handle($mh, $ch1);  // 将第一个cURL句柄添加到会话中

$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_URL, "https://www.example.com/api2");
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
curl_multi_add_handle($mh, $ch2);  // 将第二个cURL句柄添加到会话中

// 循环执行直到所有请求完成
do {
    $status = curl_multi_exec($mh, $running);
} while ($status === CURLM_CALL_MULTI_PERFORM || $running);

// 获取第一个请求的结果
$response1 = curl_multi_getcontent($ch1);
echo "Response 1: " . $response1 . "
";

// 获取第二个请求的结果
$response2 = curl_multi_getcontent($ch2);
echo "Response 2: " . $response2 . "
";

// 关闭会话句柄
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);
?>

Im obigen Beispielcode wird ein cURL-Sitzungshandle $mh zunächst mit der Funktion „curl_multi_init()“ initialisiert. Anschließend werden zwei unabhängige cURL-Sitzungshandles $ch1 und $ch2 erstellt und die angeforderte URL sowie einige andere Optionen mithilfe der Funktion „curl_setopt()“ festgelegt. Als nächstes verwenden Sie die Funktion „curl_multi_add_handle()“, um $c1 und $c2 zum Sitzungshandle $mh hinzuzufügen. Verwenden Sie dann die Funktion „curl_multi_exec()“, um mehrere Anforderungen in einer Schleife auszuführen, bis alle Anforderungen abgeschlossen sind. Verwenden Sie abschließend die Funktion „curl_multi_getcontent()“, um die Ergebnisse jeder Anforderung abzurufen und die Ergebnisse auszugeben.

Mit der Funktion „curl_multi_add_handle()“ können Sitzungen mehrerer cURL-Handles effektiv verwaltet werden, wodurch die Effizienz von Netzwerkanforderungen und die Wartbarkeit des Codes verbessert werden. In der tatsächlichen Entwicklung können wir auch andere Funktionen wie die Funktionen „curl_multi_remove_handle()“ und „curl_multi_close()“ kombinieren, um komplexere Netzwerkanforderungsaufgaben abzuschließen.

Zusammenfassend lässt sich sagen, dass die Funktion „curl_multi_add_handle()“ eine sehr nützliche Funktion ist, mit der einer Sitzung mehrere cURL-Handles zur Verwaltung hinzugefügt werden können, wodurch die Effizienz von Netzwerkanforderungen und die Wartbarkeit des Codes verbessert werden. In der tatsächlichen Entwicklung können wir diese Funktion verwenden, um mehrere Netzwerkanfragen gleichzeitig zu senden und jede Anfrage nach Bedarf zu verarbeiten.

Das obige ist der detaillierte Inhalt vonEinführung in die PHP-Funktion – curl_multi_add_handle(): Fügen Sie einer Sitzung mit mehreren Handles ein cURL-Handle hinzu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn