curl_getinfoGET the information regarding a specific transfer.
<?php
mixed curl_getinfo(CurlHandle $handle, ?int $option = null);
$handle = A cURL handle returned by curl_init()
$option = The cURL option constantes
?>
$handle
The cURL handle returned by curl_init function.
$option
The CURLOPT_XXX option to be set.
CURLINFO_EFFECTIVE_URL - Last effective URL
CURLINFO_HTTP_CODE - The last response code.
As of 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_REFERER - The referrer header
CURLINFO_REQUEST_SIZE - Total size of issued requests, currently only for HTTP requests
CURLINFO_RETRY_AFTER - The information from the Retry-After: header, or zero if there was no valid header
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_PROXY_ERROR - The detailed (SOCKS) proxy error code when the most recent transfer returned a CURLE_PROXY error.
The returned value will be exactly one of the CURLPX_* values.
The error code will be CURLPX_OK if no response code was available
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-Length: 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.
EXERCISE
<?php
//URL from which to get webpage contents.
$url = "https://developerslife.tech/pt/";
// Initialize a CURL session.
$ch = curl_init($url);
// Execute
curl_exec($ch);
// Check if any error occurred
$info = curl_getinfo($ch);
// Close handle
curl_close($ch);
?>
RESULT
SEE the next exercises - other lessons!