curl_getinfo
(PHP 4 >= 4.0.4, PHP 5, PHP 7)
curl_getinfo — Get information regarding a specific transfer
Description
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
- The last response code. As of PHP 5.5.0 and cURL 7.10.8, this is a legacy alias ofCURLINFO_RESPONSE_CODE
-
CURLINFO_FILETIME
- Remote time of the retrieved document, with theCURLOPT_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 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() -
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
-
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:
- "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
option.
Changelog
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 .
|
Examples
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);
?>
English translation
You have asked to visit this site in English. For now, only the interface is translated, but not all the content yet.If you want to help me in translations, your contribution is welcome. All you need to do is register on the site, and send me a message asking me to add you to the group of translators, which will give you the opportunity to translate the pages you want. A link at the bottom of each translated page indicates that you are the translator, and has a link to your profile.
Thank you in advance.
Document created the 30/01/2003, last modified the 26/10/2018
Source of the printed document:https://www.gaudry.be/en/php-rf-curl-getinfo.html
The infobrol is a personal site whose content is my sole responsibility. The text is available under CreativeCommons license (BY-NC-SA). More info on the terms of use and the author.
References
These references and links indicate documents consulted during the writing of this page, or which may provide additional information, but the authors of these sources can not be held responsible for the content of this page.
The author This site is solely responsible for the way in which the various concepts, and the freedoms that are taken with the reference works, are presented here. Remember that you must cross multiple source information to reduce the risk of errors.