Heim > Artikel > Backend-Entwicklung > Einführung in die PHP-Funktion – curl_multi_select(): Warten Sie, bis die aktuell aktive cURL-Übertragung abgeschlossen ist
Einführung in die PHP-Funktion – curl_multi_select(): Warten Sie, bis die aktuell aktive cURL-Übertragung abgeschlossen ist.
In PHP ist die Verwendung der cURL-Bibliothek zum Senden von HTTP-Anfragen ein sehr häufiger Vorgang. Wenn wir mehrere HTTP-Anfragen gleichzeitig bearbeiten müssen, können wir dies mit der Bibliothek „curl_multi“ erreichen. Bei Verwendung der Bibliothek „curl_multi“ müssen wir häufig warten, bis die aktuell aktive cURL-Übertragung abgeschlossen ist. Zu diesem Zeitpunkt können Sie die Funktion curl_multi_select() verwenden.
curl_multi_select(resource $mh[, float $timeout])
Die Funktion „curl_multi_select()“ wartet auf den Abschluss der aktuell aktiven cURL-Übertragung und gibt die Anzahl der lesbaren Handles zurück. Durch den Aufruf dieser Funktion bleibt unser Skript während des Wartens aktiv.
$mh = curl_multi_init(); $ch1 = curl_init(); curl_setopt($ch1, CURLOPT_URL, "https://example.com/api/request1"); curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true); curl_multi_add_handle($mh, $ch1); $ch2 = curl_init(); curl_setopt($ch2, CURLOPT_URL, "https://example.com/api/request2"); curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true); curl_multi_add_handle($mh, $ch2); do { $status = curl_multi_exec($mh, $active); if ($active) { curl_multi_select($mh); // 等待当前活动的cURL传输完成 } } while ($active && $status == CURLM_OK); // 处理完所有请求后,关闭cURL句柄 foreach ([$ch1, $ch2] as $ch) { curl_multi_remove_handle($mh, $ch); curl_close($ch); } curl_multi_close($mh);
In diesem Beispiel erstellen wir einen Curl_multi-Griff und fügen zwei Curl-Griffe hinzu. Anschließend verwenden wir eine Schleife, um darauf zu warten, dass die aktuell aktive cURL-Übertragung abgeschlossen ist. In jeder Schleife rufen wir die Funktion „curl_multi_exec()“ auf, um die cURL-Übertragung abzuwickeln und zu prüfen, ob aktive Übertragungen vorhanden sind. Wenn eine aktive Übertragung vorliegt, rufen wir die Funktion „curl_multi_select()“ auf, um zu warten und während des Wartens andere Aufgaben zu erledigen. Die Schleife wird ausgeführt, bis alle Übertragungen abgeschlossen sind und keine aktiven Übertragungen mehr vorhanden sind.
Abschließend schließen wir alle cURL-Handles und curl_multi-Handles, nachdem alle Anfragen verarbeitet wurden.
Mit der Funktion „curl_multi_select()“ können wir warten, bis die aktuell aktive cURL-Übertragung abgeschlossen ist. Dadurch bleibt das Skript während des Wartens aktiv, was die Effizienz und Leistung mehrerer HTTP-Anfragen verbessert.
Hinweis: Stellen Sie bei Verwendung dieser Funktion bitte sicher, dass Fehler und Ausnahmen korrekt behandelt wurden, um zu verhindern, dass das Skript in einen unendlichen Wartezustand fällt.
Das obige ist der detaillierte Inhalt vonEinführung in die PHP-Funktion – curl_multi_select(): Warten Sie, bis die aktuell aktive cURL-Übertragung abgeschlossen ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!