(PHP 4 >= 4.0.4, PHP 5, PHP 7)
curl_getinfo — Get information regarding a specific transfer
Gets information about the last transfer.
ch
A cURL handle returned by curl_init().
opt
This may be one of the following constants:
CURLINFO_EFFECTIVE_URL
- Last effective URL
CURLINFO_HTTP_CODE
- Last received HTTP code
CURLINFO_FILETIME
- Remote time of the retrieved document, with the CURLOPT_FILETIME
enabled; if -1 is returned the time of the document is unknown
CURLINFO_TOTAL_TIME
- Total transaction time in seconds for last transfer
CURLINFO_NAMELOOKUP_TIME
- Time in seconds until name resolving was complete
CURLINFO_CONNECT_TIME
- Time in seconds it took to establish the connection
CURLINFO_PRETRANSFER_TIME
- Time in seconds from start until just before file transfer begins
CURLINFO_STARTTRANSFER_TIME
- Time in seconds until the first byte is about to be transferred
CURLINFO_REDIRECT_COUNT
- Number of redirects, with the CURLOPT_FOLLOWLOCATION
option enabled
CURLINFO_REDIRECT_TIME
- Time in seconds of all redirection steps before final transaction was started, with the CURLOPT_FOLLOWLOCATION
option enabled
CURLINFO_REDIRECT_URL
- With the CURLOPT_FOLLOWLOCATION
option disabled: redirect URL found in the last transaction, that should be requested manually next. With the CURLOPT_FOLLOWLOCATION
option enabled: this is empty. The redirect URL in this case is available in CURLINFO_EFFECTIVE_URL
CURLINFO_PRIMARY_IP
- IP address of the most recent connection
CURLINFO_PRIMARY_PORT
- Destination port of the most recent connection
CURLINFO_LOCAL_IP
- Local (source) IP address of the most recent connection
CURLINFO_LOCAL_PORT
- Local (source) port of the most recent connection
CURLINFO_SIZE_UPLOAD
- Total number of bytes uploaded
CURLINFO_SIZE_DOWNLOAD
- Total number of bytes downloaded
CURLINFO_SPEED_DOWNLOAD
- Average download speed
CURLINFO_SPEED_UPLOAD
- Average upload speed
CURLINFO_HEADER_SIZE
- Total size of all headers received
CURLINFO_HEADER_OUT
- The request string sent. For this to
work, add the CURLINFO_HEADER_OUT
option to the handle by calling
curl_setopt()
CURLINFO_REQUEST_SIZE
- Total size of issued requests, currently only for HTTP requests
CURLINFO_SSL_VERIFYRESULT
- Result of SSL certification verification requested by setting CURLOPT_SSL_VERIFYPEER
CURLINFO_CONTENT_LENGTH_DOWNLOAD
- Content length of download, read from Content-Length: field
CURLINFO_CONTENT_LENGTH_UPLOAD
- Specified size of upload
CURLINFO_CONTENT_TYPE
- Content-Type: of the requested document. NULL indicates server did not send valid Content-Type: header
CURLINFO_PRIVATE
- Private data associated with this cURL handle, previously set with the CURLOPT_PRIVATE
option of curl_setopt()
CURLINFO_RESPONSE_CODE
- The last response code
CURLINFO_HTTP_CONNECTCODE
- The CONNECT response code
CURLINFO_HTTPAUTH_AVAIL
- Bitmask indicating the authentication method(s) available according to the previous response
CURLINFO_PROXYAUTH_AVAIL
- Bitmask indicating the proxy authentication method(s) available according to the previous response
CURLINFO_OS_ERRNO
- Errno from a connect failure. The number is OS and system specific.
CURLINFO_NUM_CONNECTS
- Number of connections curl had to create to achieve the previous transfer
CURLINFO_SSL_ENGINES
- OpenSSL crypto-engines supported
CURLINFO_COOKIELIST
- All known cookies
CURLINFO_FTP_ENTRY_PATH
- Entry path in FTP server
CURLINFO_APPCONNECT_TIME
- Time in seconds it took from the start until the SSL/SSH connect/handshake to the remote host was completed
CURLINFO_CERTINFO
- TLS certificate chain
CURLINFO_CONDITION_UNMET
- Info on unmet time conditional
CURLINFO_RTSP_CLIENT_CSEQ
- Next RTSP client CSeq
CURLINFO_RTSP_CSEQ_RECV
- Recently received CSeq
CURLINFO_RTSP_SERVER_CSEQ
- Next RTSP server CSeq
CURLINFO_RTSP_SESSION_ID
- RTSP session ID
If opt
is given, returns its value.
Otherwise, returns an associative array with the following elements
(which correspond to opt
), or FALSE
on failure:
CURLINFO_HEADER_OUT
is set by a previous call to curl_setopt())
CURLINFO_PRIVATE
option.
Version | Description |
---|---|
5.5.0 |
Introduced CURLINFO_RESPONSE_CODE ,
CURLINFO_HTTP_CONNECTCODE ,
CURLINFO_HTTPAUTH_AVAIL ,
CURLINFO_PROXYAUTH_AVAIL ,
CURLINFO_OS_ERRNO ,
CURLINFO_NUM_CONNECTS ,
CURLINFO_SSL_ENGINES ,
CURLINFO_COOKIELIST ,
CURLINFO_FTP_ENTRY_PATH ,
CURLINFO_APPCONNECT_TIME ,
CURLINFO_CONDITION_UNMET ,
CURLINFO_RTSP_CLIENT_CSEQ ,
CURLINFO_RTSP_CSEQ_RECV ,
CURLINFO_RTSP_SERVER_CSEQ and
CURLINFO_RTSP_SESSION_ID .
|
5.4.7 |
Introduced CURLINFO_PRIMARY_IP ,
CURLINFO_PRIMARY_PORT ,
CURLINFO_LOCAL_IP and
CURLINFO_LOCAL_PORT .
|
5.3.7 |
Introduced CURLINFO_REDIRECT_URL .
|
5.3.0 |
Introduced CURLINFO_CERTINFO .
|
5.2.4 |
Introduced CURLINFO_PRIVATE .
|
5.1.3 |
Introduced CURLINFO_HEADER_OUT .
|
Example #1 curl_getinfo() example
<?php
// Create a cURL handle
$ch = curl_init('http://www.example.com/');
// Execute
curl_exec($ch);
// Check if any error occurred
if (!curl_errno($ch)) {
$info = curl_getinfo($ch);
echo 'Took ', $info['total_time'], ' seconds to send a request to ', $info['url'], "\n";
}
// Close handle
curl_close($ch);
?>
Example #2 curl_getinfo() example with opt
parameter
<?php
// Create a cURL handle
$ch = curl_init('http://www.example.com/');
// Execute
curl_exec($ch);
// Check HTTP status code
if (!curl_errno($ch)) {
switch ($http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE)) {
case 200: # OK
break;
default:
echo 'Unexpected HTTP code: ', $http_code, "\n";
}
}
// Close handle
curl_close($ch);
?>
Note:
Information gathered by this function is kept if the handle is re-used. This means that unless a statistic is overridden internally by this function, the previous info is returned.