Signatur
Beschreibung
curl_multi_strerror() wandelt einen numerischen Fehlercode, wie er von cURL-Multi-Funktionen zurückgegeben wird, in eine lesbare englische Fehlerbeschreibung um. Dies erleichtert das Debugging beim parallelen Ausführen mehrerer HTTP-Anfragen über die cURL-Multi-Schnittstelle erheblich.
Die Funktion ist das Pendant zu curl_strerror() für reguläre (nicht-Multi-)Fehler und zu curl_multi_errno(), das den letzten Fehlercode eines Multi-Handles liefert. Typischerweise wird sie eingesetzt, um nach einem Fehler in einer curl_multi_exec()-Schleife eine aussagekräftige Fehlermeldung auszugeben oder zu protokollieren.
Die gültigen Fehlercodes entsprechen den CURLM_*-Konstanten der libcurl-Bibliothek. Wird ein ungültiger oder unbekannter Fehlercode übergeben, gibt die Funktion false zurück.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $error_code Pflicht | int | Ein numerischer cURL-Multi-Fehlercode, z. B. der Rückgabewert von curl_multi_errno() oder der Wert einer CURLM_*-Konstante. |
Rückgabewert
string zurück, wenn der Fehlercode bekannt ist. Bei einem ungültigen oder unbekannten Fehlercode wird false zurückgegeben.Beispiele
Fehlermeldung nach fehlgeschlagenem curl_multi_exec() ausgeben
<?php
$mh = curl_multi_init();
$ch1 = curl_init('https://example.com');
$ch2 = curl_init('https://example.org');
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
curl_multi_add_handle($mh, $ch1);
curl_multi_add_handle($mh, $ch2);
$running = null;
do {
$status = curl_multi_exec($mh, $running);
if ($status !== CURLM_OK) {
$errorCode = curl_multi_errno($mh);
$errorMessage = curl_multi_strerror($errorCode);
echo "cURL Multi Fehler ({$errorCode}): {$errorMessage}" . PHP_EOL;
break;
}
curl_multi_select($mh);
} while ($running > 0);
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);
echo curl_multi_getcontent($ch1);
echo curl_multi_getcontent($ch2);
curl_close($ch1);
curl_close($ch2);
Direkte Verwendung mit CURLM_*-Konstanten
<?php
// Bekannten Fehlercode nachschlagen
$codes = [
CURLM_OK,
CURLM_BAD_HANDLE,
CURLM_BAD_EASY_HANDLE,
CURLM_OUT_OF_MEMORY,
CURLM_INTERNAL_ERROR,
];
foreach ($codes as $code) {
$description = curl_multi_strerror($code);
echo "Code {$code}: {$description}" . PHP_EOL;
}
// Ungültiger Fehlercode
$unknown = curl_multi_strerror(9999);
var_dump($unknown);
// Wichtig · Fallstricke
Die zurückgegebenen Fehlermeldungen sind immer auf Englisch, da sie direkt aus der libcurl-Bibliothek stammen. Eine Lokalisierung in andere Sprachen ist nicht vorgesehen.
Nicht zu verwechseln mit curl_strerror() (für reguläre Easy-Handle-Fehler, CURLE_*) und curl_share_strerror() (für Share-Handle-Fehler, CURLSHE_*). Jeder Handle-Typ hat seine eigene Fehlercode-Palette.