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); ?>
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!