Start · Sprachen · PHP · Referenz · curl_strerror

curl_strerror

Funktion

Gibt eine menschenlesbare Fehlermeldung für einen cURL-Fehlercode zurück.

seit PHP 5.5.0 Kategorie: http

Signatur

curl_strerror(int $error_code): string

Beschreibung

curl_strerror() übersetzt einen numerischen cURL-Fehlercode in eine englische Klartextbeschreibung. Dies ist nützlich, um beim Debugging und in Log-Ausgaben verständliche Fehlermeldungen anstatt nichtssagender Zahlen anzuzeigen.

Die Funktion arbeitet mit den cURL-Konstanten (z. B. CURLE_COULDNT_CONNECT) sowie mit numerischen Fehlercodes, die von curl_errno() zurückgegeben werden. Sie ist besonders hilfreich in Kombination mit curl_errno(), wenn man einen detaillierten Fehlertext ausgeben möchte, der über die von curl_error() gelieferte Meldung hinausgeht oder diese ergänzt.

Ist der übergebene Fehlercode unbekannt oder ungültig, gibt die Funktion dennoch einen String zurück – dieser beschreibt dann einen unbekannten Fehler. Es wird keine Exception geworfen und auch kein false zurückgegeben.

Parameter

Name Typ Default Beschreibung
$error_code Pflicht int Numerischer cURL-Fehlercode, z. B. von curl_errno() oder eine CURLE_*-Konstante.

Rückgabewert

Typ
string
Beschreibung
Eine englische Klartextbeschreibung des angegebenen cURL-Fehlercodes. Bei unbekannten Codes wird eine generische Meldung wie "Unknown error" zurückgegeben.

Beispiele

Fehlercode nach fehlgeschlagenem Request ausgeben

<?php
$ch = curl_init('https://nicht-erreichbar.example.com/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);

$response = curl_exec($ch);

if ($response === false) {
    $errno = curl_errno($ch);
    $errmsg = curl_strerror($errno);
    echo "cURL-Fehler #{$errno}: {$errmsg}" . PHP_EOL;
    // Zusätzlich die von cURL gelieferte Fehlermeldung ausgeben
    echo "Detail: " . curl_error($ch) . PHP_EOL;
}

curl_close($ch);
cURL-Fehler #6: Couldn't resolve host name Detail: Could not resolve host: nicht-erreichbar.example.com

cURL-Konstante direkt in Text übersetzen

<?php
// Bekannte cURL-Fehlerkonstanten in lesbare Strings umwandeln
$codes = [
    CURLE_OK,
    CURLE_COULDNT_CONNECT,
    CURLE_OPERATION_TIMEDOUT,
    CURLE_SSL_CERTPROBLEM,
];

foreach ($codes as $code) {
    printf("Code %3d: %s\n", $code, curl_strerror($code));
}
Code 0: No error Code 7: Couldn't connect to server Code 28: Timeout was reached Code 58: Problem with the local SSL certificate

// Wichtig · Fallstricke

Sprachhinweis: Die von curl_strerror() zurückgegebenen Meldungen sind stets auf Englisch und können nicht lokalisiert werden – sie stammen direkt aus der libcurl-Bibliothek.

Unterschied zu curl_error(): curl_error() liefert die kontextspezifische Fehlermeldung der zuletzt ausgeführten cURL-Operation für ein bestimmtes Handle, während curl_strerror() eine allgemeine Beschreibung zu einem beliebigen Fehlercode liefert – unabhängig von einem Handle.

Die Funktion ist ab PHP 5.5.0 verfügbar und erfordert, dass die cURL-Erweiterung installiert und aktiviert ist.