(PHP 5)
curl_multi_exec – führt eine Unterverbindung des aktuellen cURL-Handles aus
int curl_multi_exec ( Ressource $mh , int &$still_running )
Verarbeiten Sie jedes Handle auf dem Stapel. Diese Methode kann unabhängig davon aufgerufen werden, ob das Handle Daten lesen oder schreiben muss.
mh
Mehrere cURL-Handles, die von curl_multi_init() zurückgegeben werden.
still_running
Ein Verweis auf einen Bezeichner, der verwendet wird, um zu bestimmen, ob der Vorgang noch ausgeführt wird.
Ein cURL-Code, der in den vordefinierten cURL-Konstanten definiert ist.
Hinweis: Diese Funktion gibt nur Fehler zurück, die sich auf den gesamten Stapelstapel beziehen. Auch bei der Rückgabe von CURLM_OK kann es bei einzelnen Übertragungen noch zu Problemen kommen.
In diesem Beispiel werden zwei cURL-Handles erstellt, sie einem Batch-Handler hinzugefügt und parallel ausgeführt.
<?php// Erstellen Sie ein Paar cURL-Ressourcen $ch1 = curl_init();$ch2 = curl_init();// Legen Sie die URL und die entsprechenden Optionen fest curl_setopt($ch1, CURLOPT_URL, "http://lxr.php.net / ");curl_setopt($ch1, CURLOPT_HEADER, 0);curl_setopt($ch2, CURLOPT_URL, "http://www.php.net/");curl_setopt($ch2, CURLOPT_HEADER, 0);//Batch-CURL-Handle erstellen $mh = curl_multi_init();//2 Handles hinzufügen curl_multi_add_handle($mh ,$ ch1);curl_multi_add_handle($mh,$ch2);$active = null;//Batch-Handle ausführen do { $mrc = curl_multi_exec($mh, $active);} while ($mrc == CURLM_CALL_MULTI_PERFORM);while ($active && $mrc == CURLM_OK) { if (curl_multi_select ($mh ) != -1) { do { $mrc = curl_multi_exec($mh, $active } while ($mrc == CURLM_CALL_MULTI_PERFORM); }}//Alle Handles schließen curl_multi_remove_handle($mh, $ch1);curl_multi_remove_handle($mh, $ch2);curl_multi_close($mh);?>