Just to let others who might be struggling to get it to work, curl_multi_info_read() doesn't work in PHP versions before 5.2.0, and instead returns NULL immediately.
(PHP 5, PHP 7, PHP 8)
curl_multi_info_read — Informationen über die aktuellen Transfers abrufen
Ruft Informationen oder Nachrichten der einzelnen Transfers ab sofern vorhanden. Dabei kann es sich beispielsweise um Fehlercodes handeln, aber auch schlicht um die Information, daß ein Transfer abgeschlossen ist.
Wiederholte Aufrufe dieser Funktion liefern immer ein neues Ergebnis,
bis durch die Rückgabe von false
signalisiert wird daß keine weiteren
Informationen verfügbar sind.
Der Parameter queued_messages
enthält die Anzahl
der Informationen die nach Aufruf der Funktion verbleiben.
Mit dem Aufruf von curl_multi_remove_handle(). werden diese Daten gelöscht.
multi_handle
Ein von curl_multi_init() zurückgegebenes cURL-Multihandle.
queued_messages
Anzahl der verbleibenden Informationen
Gibt im Erfolgfall ein assoziatives Array zurück, andernfalls false
.
Key: | Value: |
---|---|
msg |
Die Konstante CURLMSG_DONE . Andere Rückgabewerte
sind derzeit nicht verfügbar. |
result |
Eine der CURLE_* -Konstanten. Wenn kein Fehler
auftrat ist das Ergebnis CURLE_OK . |
handle |
Die entsprechende Resource vom Typ curl. |
Version | Beschreibung |
---|---|
8.0.0 |
multi_handle erwartet nun eine
CurlMultiHandle-Instanz; vorher wurde eine
Ressource erwartet.
|
Beispiel #1 Ein curl_multi_info_read()-Beispiel
<?php
$urls = array(
"http://www.cnn.com/",
"http://www.bbc.co.uk/",
"http://www.yahoo.com/"
);
$mh = curl_multi_init();
foreach ($urls as $i => $url) {
$conn[$i] = curl_init($url);
curl_setopt($conn[$i], CURLOPT_RETURNTRANSFER, 1);
curl_multi_add_handle($mh, $conn[$i]);
}
do {
$status = curl_multi_exec($mh, $active);
if ($active) {
curl_multi_select($mh);
}
while (false !== ($info = curl_multi_info_read($mh))) {
var_dump($info);
}
} while ($active && $status == CURLM_OK);
foreach ($urls as $i => $url) {
$res[$i] = curl_multi_getcontent($conn[$i]);
curl_close($conn[$i]);
}
var_dump(curl_multi_info_read($mh));
?>
Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:
array(3) { ["msg"]=> int(1) ["result"]=> int(0) ["handle"]=> resource(5) of type (curl) } array(3) { ["msg"]=> int(1) ["result"]=> int(0) ["handle"]=> resource(7) of type (curl) } array(3) { ["msg"]=> int(1) ["result"]=> int(0) ["handle"]=> resource(6) of type (curl) } bool(false)
Just to let others who might be struggling to get it to work, curl_multi_info_read() doesn't work in PHP versions before 5.2.0, and instead returns NULL immediately.