CURL_GETINFO(3) 1 CURL_GETINFO(3)
curl_getinfo - Get information regarding a specific transfer
SYNOPSIS
mixed curl_getinfo (resource $ch, [int $opt])
DESCRIPTION
Gets information about the last transfer.
PARAMETERS
o $ch
-A cURL handle returned by curl_init(3).
o $opt
- This may be one of the following constants:
o CURLINFO_EFFECTIVE_URL - Last effective URL
o CURLINFO_HTTP_CODE - Last received HTTP code
o CURLINFO_FILETIME - Remote time of the retrieved document, if -1 is returned the time of the document is unknown
o CURLINFO_TOTAL_TIME - Total transaction time in seconds for last transfer
o CURLINFO_NAMELOOKUP_TIME - Time in seconds until name resolving was complete
o CURLINFO_CONNECT_TIME - Time in seconds it took to establish the connection
o CURLINFO_PRETRANSFER_TIME - Time in seconds from start until just before file transfer begins
o CURLINFO_STARTTRANSFER_TIME - Time in seconds until the first byte is about to be transferred
o CURLINFO_REDIRECT_COUNT - Number of redirects, with the CURLOPT_FOLLOWLOCATION option enabled
o CURLINFO_REDIRECT_TIME - Time in seconds of all redirection steps before final transaction was started, with the CUR-
LOPT_FOLLOWLOCATION option enabled
o 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
o CURLINFO_PRIMARY_IP - IP address of the most recent connection
o CURLINFO_PRIMARY_PORT - Destination port of the most recent connection
o CURLINFO_LOCAL_IP - Local (source) IP address of the most recent connection
o CURLINFO_LOCAL_PORT - Local (source) port of the most recent connection
o CURLINFO_SIZE_UPLOAD - Total number of bytes uploaded
o CURLINFO_SIZE_DOWNLOAD - Total number of bytes downloaded
o CURLINFO_SPEED_DOWNLOAD - Average download speed
o CURLINFO_SPEED_UPLOAD - Average upload speed
o CURLINFO_HEADER_SIZE - Total size of all headers received
o CURLINFO_HEADER_OUT - The request string sent. For this to work, add the CURLINFO_HEADER_OUT option to the handle by call-
ing curl_setopt(3)
o CURLINFO_REQUEST_SIZE - Total size of issued requests, currently only for HTTP requests
o CURLINFO_SSL_VERIFYRESULT - Result of SSL certification verification requested by setting CURLOPT_SSL_VERIFYPEER
o CURLINFO_CONTENT_LENGTH_DOWNLOAD - content-length of download, read from Content-Length: field
o CURLINFO_CONTENT_LENGTH_UPLOAD - Specified size of upload
o CURLINFO_CONTENT_TYPE - Content-Type: of the requested document, NULL indicates server did not send valid Content-Type:
header
o CURLINFO_PRIVATE - Private data associated with this cURL handle, previously set with the CURLOPT_PRIVATE option of
curl_setopt(3)
RETURN VALUES
If $opt is given, returns its value. Otherwise, returns an associative array with the following elements (which correspond to $opt), or
FALSE on failure:
o "url"
o "content_type"
o "http_code"
o "header_size"
o "request_size"
o "filetime"
o "ssl_verify_result"
o "redirect_count"
o "total_time"
o "namelookup_time"
o "connect_time"
o "pretransfer_time"
o "size_upload"
o "size_download"
o "speed_download"
o "speed_upload"
o "download_content_length"
o "upload_content_length"
o "starttransfer_time"
o "redirect_time"
o "certinfo"
o "primary_ip"
o "primary_port"
o "local_ip"
o "local_port"
o "redirect_url"
o "request_header" (This is only set if the
CURLINFO_HEADER_OUT is set by a previous call to curl_setopt(3))
Note that private data is not included in the associative array and must be retrieved individually with the CURLINFO_PRIVATE option.
CHANGELOG
+--------+---------------------------------------------------+
|Version | |
| | |
| | Description |
| | |
+--------+---------------------------------------------------+
| 5.4.7 | |
| | |
| | Introduced CURLINFO_PRIMARY_IP, CURLINFO_PRI- |
| | MARY_PORT, CURLINFO_LOCAL_IP and |
| | CURLINFO_LOCAL_PORT. |
| | |
| 5.3.7 | |
| | |
| | Introduced CURLINFO_REDIRECT_URL. |
| | |
| 5.2.4 | |
| | |
| | Introduced CURLINFO_PRIVATE. |
| | |
| 5.1.3 | |
| | |
| | Introduced CURLINFO_HEADER_OUT. |
| | |
+--------+---------------------------------------------------+
EXAMPLES
Example #1
curl_getinfo(3) example
<?php
// Create a curl handle
$ch = curl_init('http://www.yahoo.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'];
}
// Close handle
curl_close($ch);
?>
NOTES
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.
PHP Documentation Group CURL_GETINFO(3)