Einführung in die PHP-Funktion – curl_multi_init(): Initialisiert eine Sitzung mit mehreren cURLs

王林
Freigeben: 2023-07-24 12:44:02
Original
1034 Leute haben es durchsucht

PHP-Funktionseinführung – curl_multi_init(): Initialisieren Sie eine Sitzung mit mehreren cURLs

Einführung:
In PHP wird die Funktion „curl_multi_init()“ verwendet, um eine Sitzung mit mehreren cURLs zu initialisieren und kann mehrere URL-Anfragen gleichzeitig verarbeiten. Diese Funktion erstellt ein neues curl_multi-Handle und gibt ein Ressourcenhandle zurück. In dieser Sitzung können wir mehrere cURL-Handles hinzufügen und ausführen, um den Zweck der gleichzeitigen Verarbeitung mehrerer URLs zu erreichen.

Syntax:
resource curl_multi_init(void)

Rückgabewert:
Bei Erfolg das Sitzungshandle zurückgeben, bei Fehlschlag FALSE zurückgeben.

Codebeispiel:
Das Folgende ist ein einfacher Beispielcode, der zeigt, wie die Funktion „curl_multi_init()“ verwendet wird, um eine Sitzung mit mehreren cURLs zu initialisieren und zwei URL-Anfragen gleichzeitig zu verarbeiten.

<?php
// 初始化会话
$mh = curl_multi_init();

// 创建URL列表
$urls = array(
    'http://www.example.com/url1',
    'http://www.example.com/url2'
);

// 创建cURL句柄并添加到会话
$handles = array();
foreach ($urls as $url) {
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_multi_add_handle($mh, $ch);
    $handles[] = $ch;
}

// 执行会话中的cURL句柄
$active = null;
do {
    $result = curl_multi_exec($mh, $active);
} while ($result == CURLM_CALL_MULTI_PERFORM || $active);

// 处理结果
foreach ($handles as $handle) {
    $response = curl_multi_getcontent($handle);
    // 处理响应数据
    echo $response;
    
    // 移除句柄和关闭cURL
    curl_multi_remove_handle($mh, $handle);
    curl_close($handle);
}

// 关闭会话
curl_multi_close($mh);
?>
Nach dem Login kopieren

Analyse:
Im obigen Beispielcode wird zunächst eine Sitzung mit der Funktion „curl_multi_init()“ initialisiert und anschließend eine URL-Liste erstellt. Als Nächstes wird eine foreach-Schleife verwendet, um die URL-Liste zu durchlaufen, und mithilfe der Funktion „curl_init()“ werden mehrere cURL-Handles erstellt. Die Option CURLOPT_RETURNTRANSFER ist so eingestellt, dass Antwortdaten zurückgegeben werden. Verwenden Sie dann die Funktion „curl_multi_add_handle()“, um jedes Handle zur Sitzung hinzuzufügen und die Handles im Array „$handles“ zu speichern.

Danach verwenden Sie die Funktion „curl_multi_exec()“, um alle Handles gleichzeitig in der Sitzung auszuführen. Rufen Sie den Rückgabewert $result und die Anzahl der aktiven Handles $active ab und bestimmen Sie, ob die Ausführung in der do-while-Schleife fortgesetzt werden muss.

Nachdem die Schleife beendet ist, verwenden Sie die Funktion „curl_multi_getcontent()“, um die Antwortdaten jedes Handles abzurufen und zu verarbeiten. Verwenden Sie dann die Funktion „curl_multi_remove_handle()“, um das Handle aus der Sitzung zu entfernen, und verwenden Sie die Funktion „curl_close()“, um jedes cURL-Handle zu schließen.

Verwenden Sie abschließend die Funktion „curl_multi_close()“, um die Sitzung zu schließen.

Zusammenfassung:
Durch die Verwendung der Funktion „curl_multi_init()“ können wir problemlos eine Sitzung mit mehreren cURLs initialisieren und die Funktion zur gleichzeitigen Verarbeitung mehrerer URL-Anfragen implementieren. Dies ist nützlich, wenn Sie mehrere APIs anfordern oder mehrere Dateien gleichzeitig herunterladen müssen. Die Verwendung der Funktion „curl_multi_init()“ kann die Effizienz und Reaktionsgeschwindigkeit des Programms verbessern.

Das Erlernen und Beherrschen der Funktion „curl_multi_init()“ und anderer verwandter cURL-Funktionen kann Ihnen ein tieferes Verständnis und eine bessere Anwendung der Netzwerkanforderungsfunktion von PHP vermitteln.

Das obige ist der detaillierte Inhalt vonEinführung in die PHP-Funktion – curl_multi_init(): Initialisiert eine Sitzung mit mehreren cURLs. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage