curl_errno
curl_errno($ch)
Renvoie le numéro d’erreur de la dernière requête cURL, 0 = aucune erreur. Les numéros correspondent aux constantes CURLE_*.
Paramètres
- $ch – un identifiant obtenu par curl_init().
Exemples
$ch = curl_init("http://127.0.0.1:1/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
if (curl_exec($ch) === false) {
echo curl_errno($ch); // 7
}
var_dump(curl_errno($ch) === CURLE_COULDNT_CONNECT); // bool(true)
// distinguer les erreurs courantes
function describe_error($number) {
switch ($number) {
case 0: return "aucune erreur";
case CURLE_COULDNT_RESOLVE_HOST: // 6
return "serveur inconnu";
case CURLE_COULDNT_CONNECT: // 7
return "le serveur ne répond pas";
case CURLE_OPERATION_TIMEDOUT: // 28
return "délai dépassé";
case CURLE_SSL_CACERT: // 60
return "certificat non vérifié";
default: return "erreur " . $number;
}
}
echo describe_error(curl_errno($ch)); // le serveur ne répond pas
Points d’attention
- Le numéro reste le même d’une version de libcurl à l’autre, le texte de curl_error() non. Fondez les décisions du script sur le numéro.
- Les codes de statut HTTP (404, 500) ne sont pas des erreurs cURL, curl_errno() renvoie 0. Avec l’option CURLOPT_FAILONERROR, elle renvoie l’erreur 22 pour un code de 400 ou plus.
- Une description générale du numéro est renvoyée par curl_strerror(). Elle aussi diffère selon les versions de libcurl, la formulation d’une même erreur a changé au fil du temps.
Fonctions associées :
curl_error()
curl_exec()
curl_getinfo()