(PHP 4 >= 4.0.4, PHP 5, PHP 7)
Get information regarding a specific transfer
mixed curl_getinfo ( resource $ch [, int $opt = 0 ] )
Gets information about the last transfer.
Parameters:
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, 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 theCURLOPT_FOLLOWLOCATION
option enabled -
CURLINFO_REDIRECT_TIME
- Time in seconds of all redirection steps before final transaction was started, with theCURLOPT_FOLLOWLOCATION
option enabled -
CURLINFO_REDIRECT_URL
- With theCURLOPT_FOLLOWLOCATION
option disabled: redirect URL found in the last transaction, that should be requested manually next. With theCURLOPT_FOLLOWLOCATION
option enabled: this is empty. The redirect URL in this case is available inCURLINFO_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 theCURLINFO_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 settingCURLOPT_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 theCURLOPT_PRIVATE
option of curl_setopt()
Returns:
If opt
is given, returns its value. Otherwise, returns an associative array with the following elements (which correspond to opt
), or FALSE
on failure:
- "url"
- "content_type"
- "http_code"
- "header_size"
- "request_size"
- "filetime"
- "ssl_verify_result"
- "redirect_count"
- "total_time"
- "namelookup_time"
- "connect_time"
- "pretransfer_time"
- "size_upload"
- "size_download"
- "speed_download"
- "speed_upload"
- "download_content_length"
- "upload_content_length"
- "starttransfer_time"
- "redirect_time"
- "certinfo"
- "primary_ip"
- "primary_port"
- "local_ip"
- "local_port"
- "redirect_url"
- "request_header" (This is only set if the
CURLINFO_HEADER_OUT
is set by a previous call to curl_setopt())
CURLINFO_PRIVATE
Changelog:
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.2.4
Introduced CURLINFO_PRIVATE
.
5.1.3
Introduced CURLINFO_HEADER_OUT
.
Notes:
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.
Examples:
curl_getinfo() 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); ?>
Please login to continue.