curl_errno

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

curl_errnoRestituisce il numero dell'ultimo errore

Descrizione

curl_errno(CurlHandle $handle): int

Restituisce il numero dell'errore per l'ultima operazione cURL.

Elenco dei parametri

ch

Un identificativo cURL restituito da curl_init().

Valori restituiti

Restituisce il numero dell'errore o 0 (zero) se non si è verificato nessun errore.

Log delle modifiche

Versione Descrizione
8.0.0 handle expects a CurlHandle instance now; previously, a resource was expected.

Esempi

Example #1 Esempio di curl_errno()

<?php
// Crea un gestore di curl verso una posizione non esistente
$ch = curl_init('http://404.php.net/');

// Esegue
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);

// Controlla se si è verificato un errore
if(curl_errno($ch))
{
echo
'Curl error: ' . curl_error($ch);
}

// Chiude il gestore
curl_close($ch);
?>

Vedere anche:

add a note

User Contributed Notes 9 notes

up
144
denis at reddodo dot com
14 years ago
if someone need more information about curl errors<?php$error_codes=array([1] => 'CURLE_UNSUPPORTED_PROTOCOL', [2] => 'CURLE_FAILED_INIT', [3] => 'CURLE_URL_MALFORMAT', [4] => 'CURLE_URL_MALFORMAT_USER', [5] => 'CURLE_COULDNT_RESOLVE_PROXY', [6] => 'CURLE_COULDNT_RESOLVE_HOST', [7] => 'CURLE_COULDNT_CONNECT', [8] => 'CURLE_FTP_WEIRD_SERVER_REPLY',[9] => 'CURLE_REMOTE_ACCESS_DENIED',[11] => 'CURLE_FTP_WEIRD_PASS_REPLY',[13] => 'CURLE_FTP_WEIRD_PASV_REPLY',[14]=>'CURLE_FTP_WEIRD_227_FORMAT',[15] => 'CURLE_FTP_CANT_GET_HOST',[17] => 'CURLE_FTP_COULDNT_SET_TYPE',[18] => 'CURLE_PARTIAL_FILE',[19] => 'CURLE_FTP_COULDNT_RETR_FILE',[21] => 'CURLE_QUOTE_ERROR',[22] => 'CURLE_HTTP_RETURNED_ERROR',[23] => 'CURLE_WRITE_ERROR',[25] => 'CURLE_UPLOAD_FAILED',[26] => 'CURLE_READ_ERROR',[27] => 'CURLE_OUT_OF_MEMORY',[28] => 'CURLE_OPERATION_TIMEDOUT',[30] => 'CURLE_FTP_PORT_FAILED',[31] => 'CURLE_FTP_COULDNT_USE_REST',[33] => 'CURLE_RANGE_ERROR',[34] => 'CURLE_HTTP_POST_ERROR',[35] => 'CURLE_SSL_CONNECT_ERROR',[36] => 'CURLE_BAD_DOWNLOAD_RESUME',[37] => 'CURLE_FILE_COULDNT_READ_FILE',[38] => 'CURLE_LDAP_CANNOT_BIND',[39] => 'CURLE_LDAP_SEARCH_FAILED',[41] => 'CURLE_FUNCTION_NOT_FOUND',[42] => 'CURLE_ABORTED_BY_CALLBACK',[43] => 'CURLE_BAD_FUNCTION_ARGUMENT',[45] => 'CURLE_INTERFACE_FAILED',[47] => 'CURLE_TOO_MANY_REDIRECTS',[48] => 'CURLE_UNKNOWN_TELNET_OPTION',[49] => 'CURLE_TELNET_OPTION_SYNTAX',[51] => 'CURLE_PEER_FAILED_VERIFICATION',[52] => 'CURLE_GOT_NOTHING',[53] => 'CURLE_SSL_ENGINE_NOTFOUND',[54] => 'CURLE_SSL_ENGINE_SETFAILED',[55] => 'CURLE_SEND_ERROR',[56] => 'CURLE_RECV_ERROR',[58] => 'CURLE_SSL_CERTPROBLEM',[59] => 'CURLE_SSL_CIPHER',[60] => 'CURLE_SSL_CACERT',[61] => 'CURLE_BAD_CONTENT_ENCODING',[62] => 'CURLE_LDAP_INVALID_URL',[63] => 'CURLE_FILESIZE_EXCEEDED',[64] => 'CURLE_USE_SSL_FAILED',[65] => 'CURLE_SEND_FAIL_REWIND',[66] => 'CURLE_SSL_ENGINE_INITFAILED',[67] => 'CURLE_LOGIN_DENIED',[68] => 'CURLE_TFTP_NOTFOUND',[69] => 'CURLE_TFTP_PERM',[70] => 'CURLE_REMOTE_DISK_FULL',[71] => 'CURLE_TFTP_ILLEGAL',[72] => 'CURLE_TFTP_UNKNOWNID',[73] => 'CURLE_REMOTE_FILE_EXISTS',[74] => 'CURLE_TFTP_NOSUCHUSER',[75] => 'CURLE_CONV_FAILED',[76] => 'CURLE_CONV_REQD',[77] => 'CURLE_SSL_CACERT_BADFILE',[78] => 'CURLE_REMOTE_FILE_NOT_FOUND',[79] => 'CURLE_SSH',[80] => 'CURLE_SSL_SHUTDOWN_FAILED',[81] => 'CURLE_AGAIN',[82] => 'CURLE_SSL_CRL_BADFILE',[83] => 'CURLE_SSL_ISSUER_ERROR',[84] => 'CURLE_FTP_PRET_FAILED',[84] => 'CURLE_FTP_PRET_FAILED',[85] => 'CURLE_RTSP_CSEQ_ERROR',[86] => 'CURLE_RTSP_SESSION_ERROR',[87] => 'CURLE_FTP_BAD_FILE_LIST',[88] => 'CURLE_CHUNK_FAILED');?>
up
14
nimasdj AT yahoo [DOT] com
10 years ago
To coder.ua[at]gmail.com:Please note some errors have more than one constants:[CURLE_FTP_PARTIAL_FILE]    18[CURLE_PARTIAL_FILE]    18[CURLE_HTTP_NOT_FOUND]    22[CURLE_HTTP_RETURNED_ERROR]    22[CURLE_OPERATION_TIMEDOUT]    28[CURLE_OPERATION_TIMEOUTED]    28[CURLE_BAD_DOWNLOAD_RESUME]    36[CURLE_FTP_BAD_DOWNLOAD_RESUME]    36
up
11
bozo_z_clown at yahoo dot com
16 years ago
Note that you can detect errors using curl_multi_info_read() in the curl_multi_exec() loop that don't show up later using curl_errno().  This seems particularly true of connection errors.
up
2
cubefox at web dot NOSPAMPLEASE dot de
5 years ago
The manual above only mentions how to get an error description from the cURL handle ($ch) using curl_error():<?php$description = curl_error($ch);?>But you can also get a description from the error number itself using curl_strerror():<?php$description = curl_strerror(curl_errno($ch));?>The latter can be useful if you only have access to the error number but not to the cURL handle.
up
7
coder.ua[at]gmail.com
12 years ago
All available curl error constants and values in PHP 5.4.7 on FreeBSD 8.2-RELEASE:CURLE_UNSUPPORTED_PROTOCOL => 1CURLE_FAILED_INIT => 2CURLE_URL_MALFORMAT => 3CURLE_URL_MALFORMAT_USER => 4CURLE_COULDNT_RESOLVE_PROXY => 5CURLE_COULDNT_RESOLVE_HOST => 6CURLE_COULDNT_CONNECT => 7CURLE_FTP_WEIRD_SERVER_REPLY => 8CURLE_FTP_ACCESS_DENIED => 9CURLE_FTP_USER_PASSWORD_INCORRECT => 10CURLE_FTP_WEIRD_PASS_REPLY => 11CURLE_FTP_WEIRD_USER_REPLY => 12CURLE_FTP_WEIRD_PASV_REPLY => 13CURLE_FTP_WEIRD_227_FORMAT => 14CURLE_FTP_CANT_GET_HOST => 15CURLE_FTP_CANT_RECONNECT => 16CURLE_FTP_COULDNT_SET_BINARY => 17CURLE_PARTIAL_FILE => 18CURLE_FTP_COULDNT_RETR_FILE => 19CURLE_FTP_WRITE_ERROR => 20CURLE_FTP_QUOTE_ERROR => 21CURLE_HTTP_NOT_FOUND => 22CURLE_WRITE_ERROR => 23CURLE_MALFORMAT_USER => 24CURLE_FTP_COULDNT_STOR_FILE => 25CURLE_READ_ERROR => 26CURLE_OUT_OF_MEMORY => 27CURLE_OPERATION_TIMEOUTED => 28CURLE_FTP_COULDNT_SET_ASCII => 29CURLE_FTP_PORT_FAILED => 30CURLE_FTP_COULDNT_USE_REST => 31CURLE_FTP_COULDNT_GET_SIZE => 32CURLE_HTTP_RANGE_ERROR => 33CURLE_HTTP_POST_ERROR => 34CURLE_SSL_CONNECT_ERROR => 35CURLE_FTP_BAD_DOWNLOAD_RESUME => 36CURLE_FILE_COULDNT_READ_FILE => 37CURLE_LDAP_CANNOT_BIND => 38CURLE_LDAP_SEARCH_FAILED => 39CURLE_LIBRARY_NOT_FOUND => 40CURLE_FUNCTION_NOT_FOUND => 41CURLE_ABORTED_BY_CALLBACK => 42CURLE_BAD_FUNCTION_ARGUMENT => 43CURLE_BAD_CALLING_ORDER => 44CURLE_HTTP_PORT_FAILED => 45CURLE_BAD_PASSWORD_ENTERED => 46CURLE_TOO_MANY_REDIRECTS => 47CURLE_UNKNOWN_TELNET_OPTION => 48CURLE_TELNET_OPTION_SYNTAX => 49CURLE_OBSOLETE => 50CURLE_SSL_PEER_CERTIFICATE => 51CURLE_GOT_NOTHING => 52CURLE_SSL_ENGINE_NOTFOUND => 53CURLE_SSL_ENGINE_SETFAILED => 54CURLE_SEND_ERROR => 55CURLE_RECV_ERROR => 56CURLE_SHARE_IN_USE => 57CURLE_SSL_CERTPROBLEM => 58CURLE_SSL_CIPHER => 59CURLE_SSL_CACERT => 60CURLE_BAD_CONTENT_ENCODING => 61CURLE_LDAP_INVALID_URL => 62CURLE_FILESIZE_EXCEEDED => 63CURLE_FTP_SSL_FAILED] => 64
up
3
david at liip dot ch
13 years ago
you should look on http://php.net/manual/en/curl.constants.php for the error codes, not on the linked official curl doc. some of the error codes are different, at least the one mentioned on the other page:in PHP the curl error number 28 is calledCURLE_OPERATION_TIMEOUTEDwhile in the official site is:CURLE_OPERATION_TIMEDOUT
up
0
nono303
3 years ago
CURLcode v7.81 reversed array for PHP  (from \curl\include\curl\curl.h l.495)https://gist.github.com/nono303/de1256f55e26fdbcc3e0d72e397ac4a1
up
0
gmail@asmqb7
6 years ago
/!\ ATTENTION if you are using curl multi handlesThis function returns 0 in error conditions when run on curl handles accessed via curl_multi_info_read().You must look at the data returned by curl_multi_info_read() for the true errno. The data is over there instead.
up
-4
Eugene Kunkel
8 years ago
Gets a current list of all CURLE_* error constants, their applicable error messages, and their applicable error codes. Useful for making wrapper classes or for mapping cURL errors to specific Exception objects.<?php$list   = get_defined_constants(TRUE);$list   = preg_grep('/^CURLE_/', array_flip($list['curl']));$result = array();foreach ($list as $const) {    $result[$const] = array    (        'code'    => constant($const),        'message' => curl_strerror(constant($const))    );}echo "<pre>";echo print_r($result, TRUE);echo "</pre>";
To Top