(PHP 4 >= 4.0.4, PHP 5, PHP 7)
curl_getinfo — Get information regarding a specific transfer
curl_getinfo ( CurlHandle $handle [, int|null $option = null ] ) : mixed
Gets information about the last transfer.
handle
A cURL handle returned by curl_init().
option
This may be one of the following constants:
CURLINFO_EFFECTIVE_URL
- Last effective URL CURLINFO_HTTP_CODE
- The last response code. As of PHP 5.5.0 and cURL 7.10.8, this is a legacy alias of CURLINFO_RESPONSE_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 CURLINFO_CONTENT_LENGTH_DOWNLOAD_T
- The content-length of the download. This is the value read from the Content-Type:
field. -1 if the size isn't known CURLINFO_CONTENT_LENGTH_UPLOAD_T
- The specified size of the upload. -1 if the size isn't known CURLINFO_HTTP_VERSION
- The version used in the last HTTP connection. The return value will be one of the defined CURL_HTTP_VERSION_*
constants or 0 if the version can't be determined CURLINFO_PROTOCOL
- The protocol used in the last HTTP connection. The returned value will be exactly one of the CURLPROTO_*
values CURLINFO_PROXY_SSL_VERIFYRESULT
- The result of the certificate verification that was requested (using the CURLOPT_PROXY_SSL_VERIFYPEER
option). Only used for HTTPS proxies CURLINFO_SCHEME
- The URL scheme used for the most recent connection CURLINFO_SIZE_DOWNLOAD_T
- Total number of bytes that were downloaded. The number is only for the latest transfer and will be reset again for each new transfer CURLINFO_SIZE_UPLOAD_T
- Total number of bytes that were uploaded CURLINFO_SPEED_DOWNLOAD_T
- The average download speed in bytes/second that curl measured for the complete download CURLINFO_SPEED_UPLOAD_T
- The average upload speed in bytes/second that curl measured for the complete upload CURLINFO_APPCONNECT_TIME_T
- Time, in microseconds, it took from the start until the SSL/SSH connect/handshake to the remote host was completed CURLINFO_CONNECT_TIME_T
- Total time taken, in microseconds, from the start until the connection to the remote host (or proxy) was completed CURLINFO_FILETIME_T
- Remote time of the retrieved document (as Unix timestamp), an alternative to CURLINFO_FILETIME
to allow systems with 32 bit long variables to extract dates outside of the 32bit timestamp range CURLINFO_NAMELOOKUP_TIME_T
- Time in microseconds from the start until the name resolving was completed CURLINFO_PRETRANSFER_TIME_T
- Time taken from the start until the file transfer is just about to begin, in microseconds CURLINFO_REDIRECT_TIME_T
- Total time, in microseconds, it took for all redirection steps include name lookup, connect, pretransfer and transfer before final transaction was started CURLINFO_STARTTRANSFER_TIME_T
- Time, in microseconds, it took from the start until the first byte is received CURLINFO_TOTAL_TIME_T
- Total time in microseconds for the previous transfer, including name resolving, TCP connect etc. If option
is given, returns its value. Otherwise, returns an associative array with the following elements (which correspond to option
), or false
on failure:
CURLINFO_HEADER_OUT
is set by a previous call to curl_setopt()) CURLINFO_PRIVATE
option. Version | Description |
---|---|
8.0.0 | handle expects a CurlHandle instance now; previously, a resource was expected. |
8.0.0 | option is nullable now; previously, the default was 0 . |
7.3.0 | Introduced CURLINFO_CONTENT_LENGTH_DOWNLOAD_T , CURLINFO_CONTENT_LENGTH_UPLOAD_T , CURLINFO_HTTP_VERSION , CURLINFO_PROTOCOL , CURLINFO_PROXY_SSL_VERIFYRESULT , CURLINFO_SCHEME , CURLINFO_SIZE_DOWNLOAD_T , CURLINFO_SIZE_UPLOAD_T , CURLINFO_SPEED_DOWNLOAD_T , CURLINFO_SPEED_UPLOAD_T , CURLINFO_APPCONNECT_TIME_T , CURLINFO_CONNECT_TIME_T , CURLINFO_FILETIME_T , CURLINFO_NAMELOOKUP_TIME_T , CURLINFO_PRETRANSFER_TIME_T , CURLINFO_REDIRECT_TIME_T , CURLINFO_STARTTRANSFER_TIME_T , CURLINFO_TOTAL_TIME_T . |
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 option
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.
© 1997–2020 The PHP Documentation Group
Licensed under the Creative Commons Attribution License v3.0 or later.
https://www.php.net/manual/en/function.curl-getinfo.php