PHP cURL
What is cURL?
cURL, which stands for client URL and can be written as curl (which I’ll do for the remainder of the blog because I’m lazy), is a command-line tool for file transfer with URL syntax.
It supports a number of protocols including HTTP, HTTPS, FTP, and many more. HTTP/HTTPS makes it a great candidate for interacting with APIs.
So there are PHP also supports libcurl. Which allows you to connect and communicate to many different types of servers with many different types of protocols.
libcurl currently supports the http, https, ftp, gopher, telnet, dict, file, and ldap protocols.
libcurl also supports HTTPS certificates, HTTP POST, HTTP PUT, FTP uploading (this can also be done with PHP's FTP extension), HTTP form-based upload, proxies, cookies, and user+password authentication.
An example to fetch a web page via cURL
<?php
// create a new cURL resource
$ch = curl_init();
// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);
// grab URL and pass it to the browser
curl_exec($ch);
// close cURL resource, and free up system resources
curl_close($ch);
?>
Output
Requirements
In order to use PHP's cURL functions, you need to install the » libcurl package. PHP requires libcurl version 7.10.5 or later.
Installation
To use PHP's cURL support you must also compile PHP --with-curl[=DIR] where DIR is the location of the directory containing the lib and include directories.
In the include directory, there should be a folder named curl which should contain the easy.h and curl.h files.
There should be a file named libcurl.a located in the lib directory.
Beginning with PHP 4.3.0 you can configure PHP to use cURL for URL streams --with-curlwrappers . This feature was moved to PECL as of PHP 5.5.0.
In order to enable this module on a Windows environment, libeay32.dll and ssleay32.dll, or, as of OpenSSL 1.1 libcrypto-*.dll and libssl-*.dll, must be present in your PATH.
Also, libssh2.dll must be present in your PATH. You don't need libcurl.dll from the cURL site.
Run-time Configuration
The behavior of these functions is affected by settings in php.ini.
cURL Configuration Options
Name | Default | Changeable | Changelog |
---|---|---|---|
curl.cainfo | NULL | PHP_INI_SYSTEM | Available since PHP 5.3.7. |
Resource Types
This extension defines two resource types: a cURL handle and a cURL multi handle.
Predefined Constants
This extension also provided predefined constants,
In order to use this extension has either been compiled into PHP or will dynamically be loaded at runtime.
- CURLOPT_AUTOREFERER (integer)
- Available since PHP 5.1.0
- CURLOPT_COOKIESESSION (integer)
- Available since PHP 5.1.0
- CURLOPT_DNS_USE_GLOBAL_CACHE (integer)
- CURLOPT_DNS_CACHE_TIMEOUT (integer)
- CURLOPT_FTP_SSL (integer)
- Available since PHP 5.2.0
- CURLFTP_CREATE_DIR (integer)
- Available since PHP 7.0.7 and cURL 7.19.3
- CURLFTP_CREATE_DIR_NONE (integer)
- Available since PHP 7.0.7 and cURL 7.19.3
- CURLFTP_CREATE_DIR_RETRY (integer)
- Available since PHP 7.0.7 and cURL 7.19.3
- CURLFTPSSL_TRY (integer)
- Available since PHP 5.2.0
- CURLFTPSSL_ALL (integer)
- Available since PHP 5.2.0
- CURLFTPSSL_CONTROL (integer)
- Available since PHP 5.2.0
- CURLFTPSSL_NONE (integer)
- Available since PHP 5.2.0
- CURLOPT_PRIVATE (integer)
- Available since PHP 5.2.4
- CURLOPT_FTPSSLAUTH (integer)
- Available since PHP 5.1.0
- CURLOPT_PORT (integer)
- CURLOPT_FILE (integer)
- CURLOPT_INFILE (integer)
- CURLOPT_INFILESIZE (integer)
- CURLOPT_URL (integer)
- CURLOPT_PROXY (integer)
- CURLOPT_VERBOSE (integer)
- CURLOPT_HEADER (integer)
- CURLOPT_HTTPHEADER (integer)
- CURLOPT_NOPROGRESS (integer)
- CURLOPT_NOBODY (integer)
- CURLOPT_FAILONERROR (integer)
- CURLOPT_UPLOAD (integer)
- CURLOPT_POST (integer)
- CURLOPT_FTPLISTONLY (integer)
- CURLOPT_FTPAPPEND (integer)
- CURLOPT_FTP_CREATE_MISSING_DIRS (integer)
- CURLOPT_NETRC (integer)
- CURLOPT_FOLLOWLOCATION (integer)
- This constant is not available when open_basedir or safe_mode are enabled.
- CURLOPT_FTPASCII (integer)
- CURLOPT_PUT (integer)
- CURLOPT_MUTE (integer)
- CURLOPT_USERPWD (integer)
- CURLOPT_PROXYUSERPWD (integer)
- CURLOPT_RANGE (integer)
- CURLOPT_TIMEOUT (integer)
- CURLOPT_TIMEOUT_MS (integer)
- CURLOPT_TCP_NODELAY (integer)
- Available since PHP 5.2.1
- CURLOPT_POSTFIELDS (integer)
- CURLOPT_PROGRESSFUNCTION (integer)
- Available since PHP 5.3.0
- CURLOPT_REFERER (integer)
- CURLOPT_USERAGENT (integer)
- CURLOPT_FTPPORT (integer)
- CURLOPT_FTP_USE_EPSV (integer)
- CURLOPT_LOW_SPEED_LIMIT (integer)
- CURLOPT_LOW_SPEED_TIME (integer)
- CURLOPT_RESUME_FROM (integer)
- CURLOPT_COOKIE (integer)
- CURLOPT_SSLCERT (integer)
- CURLOPT_SSLCERTPASSWD (integer)
- CURLOPT_WRITEHEADER (integer)
- CURLOPT_SSL_VERIFYHOST (integer)
- CURLOPT_COOKIEFILE (integer)
- CURLOPT_SSLVERSION (integer)
- CURL_SSLVERSION_DEFAULT (integer)
- CURL_SSLVERSION_TLSv1 (integer)
- CURL_SSLVERSION_SSLv2 (integer)
- CURL_SSLVERSION_SSLv3 (integer)
- CURL_SSLVERSION_TLSv1_0 (integer)
- Available since PHP 5.5.19 and 5.6.3
- CURL_SSLVERSION_TLSv1_1 (integer)
- Available since PHP 5.5.19 and 5.6.3
- CURL_SSLVERSION_TLSv1_2 (integer)
- Available since PHP 5.5.19 and 5.6.3
- CURLOPT_TIMECONDITION (integer)
- CURLOPT_TIMEVALUE (integer)
- CURLOPT_CUSTOMREQUEST (integer)
- CURLOPT_STDERR (integer)
- CURLOPT_TRANSFERTEXT (integer)
- CURLOPT_RETURNTRANSFER (integer)
- CURLOPT_QUOTE (integer)
- CURLOPT_POSTQUOTE (integer)
- CURLOPT_INTERFACE (integer)
- CURLOPT_KRB4LEVEL (integer)
- CURLOPT_HTTPPROXYTUNNEL (integer)
- CURLOPT_FILETIME (integer)
- CURLOPT_WRITEFUNCTION (integer)
- CURLOPT_READFUNCTION (integer)
- CURLOPT_PASSWDFUNCTION (integer)
- CURLOPT_HEADERFUNCTION (integer)
- CURLOPT_MAXREDIRS (integer)
- CURLOPT_MAXCONNECTS (integer)
- CURLOPT_CLOSEPOLICY (integer)
- Removed in PHP 5.6.0.
- CURLOPT_FRESH_CONNECT (integer)
- CURLOPT_FORBID_REUSE (integer)
- CURLOPT_RANDOM_FILE (integer)
- CURLOPT_EGDSOCKET (integer)
- CURLOPT_CONNECTTIMEOUT (integer)
- CURLOPT_CONNECTTIMEOUT_MS (integer)
- CURLOPT_SSL_VERIFYPEER (integer)
- CURLOPT_CAINFO (integer)
- CURLOPT_CAPATH (integer)
- CURLOPT_COOKIEJAR (integer)
- CURLOPT_SSL_CIPHER_LIST (integer)
- CURLOPT_BINARYTRANSFER (integer)
- CURLOPT_NOSIGNAL (integer)
- CURLOPT_PROXYTYPE (integer)
- Available as of cURL 7.10.
- CURLOPT_BUFFERSIZE (integer)
- CURLOPT_HTTPGET (integer)
- CURLOPT_HTTP_VERSION (integer)
- CURLOPT_SSLKEY (integer)
- CURLOPT_SSLKEYTYPE (integer)
- CURLOPT_SSLKEYPASSWD (integer)
- CURLOPT_SSLENGINE (integer)
- CURLOPT_SSLENGINE_DEFAULT (integer)
- CURLOPT_SSLCERTTYPE (integer)
- CURLOPT_CRLF (integer)
- CURLOPT_ENCODING (integer)
- CURLOPT_PROXYPORT (integer)
- CURLOPT_UNRESTRICTED_AUTH (integer)
- CURLOPT_FTP_USE_EPRT (integer)
- CURLOPT_HTTP200ALIASES (integer)
- CURLOPT_HTTPAUTH (integer)
- CURLAUTH_BASIC (integer)
- CURLAUTH_DIGEST (integer)
- CURLAUTH_GSSNEGOTIATE (integer)
- CURLAUTH_NEGOTIATE (integer)
- Available since PHP 7.0.7 and cURL 7.38.0.
- CURLAUTH_NTLM (integer)
- CURLAUTH_NTLM_WB (integer)
- Available since PHP 7.0.7 and cURL 7.22.0
- CURLAUTH_ANY (integer)
- CURLAUTH_ANYSAFE (integer)
- CURLOPT_PROXYAUTH (integer)
- CURLOPT_MAX_RECV_SPEED_LARGE (integer)
- Available since PHP 5.4.0 and cURL 7.15.5
- CURLOPT_MAX_SEND_SPEED_LARGE (integer)
- Available since PHP 5.4.0 and cURL 7.15.5
- CURLOPT_HEADEROPT (integer)
- Available since PHP 7.0.7 and cURL 7.37.0
- CURLOPT_PROXYHEADER (integer)
- Available since PHP 7.0.7 and cURL 7.37.0
- CURLCLOSEPOLICY_LEAST_RECENTLY_USED (integer)
- Removed in PHP 5.6.0.
- CURLCLOSEPOLICY_LEAST_TRAFFIC (integer)
- Removed in PHP 5.6.0.
- CURLCLOSEPOLICY_SLOWEST (integer)
- Removed in PHP 5.6.0.
- CURLCLOSEPOLICY_CALLBACK (integer)
- Removed in PHP 5.6.0.
- CURLCLOSEPOLICY_OLDEST (integer)
- Removed in PHP 5.6.0.
- CURLINFO_PRIVATE (integer)
- Available since PHP 5.2.4
- CURLINFO_EFFECTIVE_URL (integer)
- CURLINFO_HTTP_CODE (integer)
- As of PHP 5.5.0 and cURL 7.10.8, this is a legacy alias of CURLINFO_RESPONSE_CODE
- CURLINFO_RESPONSE_CODE (integer)
- Available since PHP 5.5.0 and cURL 7.10.8
- CURLINFO_HEADER_OUT (integer)
- Available since PHP 5.1.3
- CURLINFO_HEADER_SIZE (integer)
- CURLINFO_REQUEST_SIZE (integer)
- CURLINFO_TOTAL_TIME (integer)
- CURLINFO_NAMELOOKUP_TIME (integer)
- CURLINFO_CONNECT_TIME (integer)
- CURLINFO_PRETRANSFER_TIME (integer)
- CURLINFO_SIZE_UPLOAD (integer)
- CURLINFO_SIZE_DOWNLOAD (integer)
- CURLINFO_SPEED_DOWNLOAD (integer)
- CURLINFO_SPEED_UPLOAD (integer)
- CURLINFO_FILETIME (integer)
- CURLINFO_SSL_VERIFYRESULT (integer)
- CURLINFO_CONTENT_LENGTH_DOWNLOAD (integer)
- CURLINFO_CONTENT_LENGTH_UPLOAD (integer)
- CURLINFO_STARTTRANSFER_TIME (integer)
- CURLINFO_CONTENT_TYPE (integer)
- CURLINFO_REDIRECT_TIME (integer)
- CURLINFO_REDIRECT_COUNT (integer)
- CURLINFO_REDIRECT_URL (string)
- Available since PHP 5.3.7
- CURLINFO_PRIMARY_IP (string)
- Available since PHP 5.4.7
- CURLINFO_PRIMARY_PORT (integer)
- Available since PHP 5.4.7
- CURLINFO_LOCAL_IP (string)
- Available since PHP 5.4.7
- CURLINFO_LOCAL_PORT (integer)
- Available since PHP 5.4.7
- CURL_PUSH_OK (integer)
- Available since PHP 7.1.0 and cURL 7.44.0
- CURL_PUSH_DENY (integer)
- Available since PHP 7.1.0 and cURL 7.44.0
- CURL_REDIR_POST_301 (integer)
- Available since PHP 7.0.7 and cURL 7.18.2
- CURL_REDIR_POST_302 (integer)
- Available since PHP 7.0.7 and cURL 7.18.2
- CURL_REDIR_POST_303 (integer)
- Available since PHP 7.0.7 and cURL 7.25.1
- CURL_REDIR_POST_ALL (integer)
- Available since PHP 7.0.7 and cURL 7.18.2
- CURL_TIMECOND_IFMODSINCE (integer)
- CURL_TIMECOND_IFUNMODSINCE (integer)
- CURL_TIMECOND_LASTMOD (integer)
- CURL_VERSION_IPV6 (integer)
- CURL_VERSION_KERBEROS4 (integer)
- CURL_VERSION_KERBEROS5 (integer)
- Available since PHP 7.0.7 and cURL 7.40.0
- CURL_VERSION_HTTP2 (integer)
- Available since PHP 5.5.24 and 5.6.8 and cURL 7.33.0
- CURL_VERSION_PSL (integer)
- Available since PHP 7.0.7 and cURL 7.47.0
- CURL_VERSION_SSL (integer)
- CURL_VERSION_UNIX_SOCKETS (integer)
- Available since PHP 7.0.7 and cURL 7.40.0
- CURL_VERSION_LIBZ (integer)
- CURLVERSION_NOW (integer)
- CURLE_OK (integer)
- CURLE_UNSUPPORTED_PROTOCOL (integer)
- CURLE_FAILED_INIT (integer)
- CURLE_URL_MALFORMAT (integer)
- CURLE_URL_MALFORMAT_USER (integer)
- CURLE_COULDNT_RESOLVE_PROXY (integer)
- CURLE_COULDNT_RESOLVE_HOST (integer)
- CURLE_COULDNT_CONNECT (integer)
- CURLE_FTP_WEIRD_SERVER_REPLY (integer)
- CURLE_FTP_ACCESS_DENIED (integer)
- CURLE_FTP_USER_PASSWORD_INCORRECT (integer)
- CURLE_FTP_WEIRD_PASS_REPLY (integer)
- CURLE_FTP_WEIRD_USER_REPLY (integer)
- CURLE_FTP_WEIRD_PASV_REPLY (integer)
- CURLE_FTP_WEIRD_227_FORMAT (integer)
- CURLE_FTP_CANT_GET_HOST (integer)
- CURLE_FTP_CANT_RECONNECT (integer)
- CURLE_FTP_COULDNT_SET_BINARY (integer)
- CURLE_PARTIAL_FILE (integer)
- CURLE_FTP_COULDNT_RETR_FILE (integer)
- CURLE_FTP_WRITE_ERROR (integer)
- CURLE_FTP_QUOTE_ERROR (integer)
- CURLE_HTTP_NOT_FOUND (integer)
- CURLE_WRITE_ERROR (integer)
- CURLE_MALFORMAT_USER (integer)
- CURLE_FTP_COULDNT_STOR_FILE (integer)
- CURLE_READ_ERROR (integer)
- CURLE_OUT_OF_MEMORY (integer)
- CURLE_OPERATION_TIMEOUTED (integer)
- CURLE_FTP_COULDNT_SET_ASCII (integer)
- CURLE_FTP_PORT_FAILED (integer)
- CURLE_FTP_COULDNT_USE_REST (integer)
- CURLE_FTP_COULDNT_GET_SIZE (integer)
- CURLE_HTTP_RANGE_ERROR (integer)
- CURLE_HTTP_POST_ERROR (integer)
- CURLE_SSL_CONNECT_ERROR (integer)
- CURLE_FTP_BAD_DOWNLOAD_RESUME (integer)
- CURLE_FILE_COULDNT_READ_FILE (integer)
- CURLE_LDAP_CANNOT_BIND (integer)
- CURLE_LDAP_SEARCH_FAILED (integer)
- CURLE_LIBRARY_NOT_FOUND (integer)
- CURLE_FUNCTION_NOT_FOUND (integer)
- CURLE_ABORTED_BY_CALLBACK (integer)
- CURLE_BAD_FUNCTION_ARGUMENT (integer)
- CURLE_BAD_CALLING_ORDER (integer)
- CURLE_HTTP_PORT_FAILED (integer)
- CURLE_BAD_PASSWORD_ENTERED (integer)
- CURLE_TOO_MANY_REDIRECTS (integer)
- CURLE_UNKNOWN_TELNET_OPTION (integer)
- CURLE_TELNET_OPTION_SYNTAX (integer)
- CURLE_OBSOLETE (integer)
- CURLE_SSL_PEER_CERTIFICATE (integer)
- CURLE_GOT_NOTHING (integer)
- CURLE_SSL_ENGINE_NOTFOUND (integer)
- CURLE_SSL_ENGINE_SETFAILED (integer)
- CURLE_SEND_ERROR (integer)
- CURLE_RECV_ERROR (integer)
- CURLE_SHARE_IN_USE (integer)
- CURLE_SSL_CERTPROBLEM (integer)
- CURLE_SSL_CIPHER (integer)
- CURLE_SSL_CACERT (integer)
- CURLE_BAD_CONTENT_ENCODING (integer)
- CURLE_LDAP_INVALID_URL (integer)
- CURLE_FILESIZE_EXCEEDED (integer)
- CURLE_FTP_SSL_FAILED (integer)
- CURLE_SSH (integer)
- Available since PHP 5.3.0 and cURL 7.16.1.
- CURLFTPAUTH_DEFAULT (integer)
- Available since PHP 5.1.0
- CURLFTPAUTH_SSL (integer)
- Available since PHP 5.1.0
- CURLFTPAUTH_TLS (integer)
- Available since PHP 5.1.0
- CURLPROXY_HTTP (integer)
- Available since cURL 7.10.
- CURLPROXY_HTTP_1_0 (integer)
- Available since PHP 7.0.7 and cURL 7.19.3
- CURLPROXY_SOCKS4 (integer)
- Available since PHP 5.2.10 and cURL 7.10.
- CURLPROXY_SOCKS5 (integer)
- Available since cURL 7.10.
- CURL_NETRC_OPTIONAL (integer)
- CURL_NETRC_IGNORED (integer)
- CURL_NETRC_REQUIRED (integer)
- CURL_HTTP_VERSION_NONE (integer)
- CURL_HTTP_VERSION_1_0 (integer)
- CURL_HTTP_VERSION_1_1 (integer)
- CURL_HTTP_VERSION_2 (integer)
- Available since PHP 7.0.7 and cURL 7.43.0
- CURL_HTTP_VERSION_2TLS (integer)
- Available since PHP 7.0.7 and cURL 7.47.0
- CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE (integer)
- Available since PHP 7.0.7 and cURL 7.49.0
- CURLM_CALL_MULTI_PERFORM (integer)
- CURLM_OK (integer)
- CURLM_BAD_HANDLE (integer)
- CURLM_BAD_EASY_HANDLE (integer)
- CURLM_OUT_OF_MEMORY (integer)
- CURLM_INTERNAL_ERROR (integer)
- CURLMSG_DONE (integer)
- CURLOPT_KEYPASSWD (integer)
- CURLOPT_SSH_AUTH_TYPES (integer)
- CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 (integer)
- CURLOPT_SSH_PRIVATE_KEYFILE (integer)
- CURLOPT_SSH_PUBLIC_KEYFILE (integer)
- CURLOPT_SSL_OPTIONS (integer)
- Available since PHP 5.5.0 and cURL 7.25.0
- CURLSSLOPT_ALLOW_BEAST (integer)
- Available since PHP 5.5.0 and cURL 7.25.0
- CURLSSLOPT_NO_REVOKE (integer)
- Available since PHP 7.0.7 and cURL 7.44.0
- CURLOPT_USERNAME (integer)
- Available since PHP 5.5.0 and cURL 7.19.1
- CURLOPT_SASL_IR (integer)
- Available since PHP 7.0.7 and cURL 7.31.0
- CURLOPT_DNS_INTERFACE (integer)
- Available since PHP 7.0.7 and cURL 7.33.0
- CURLOPT_DNS_LOCAL_IP4 (integer)
- Available since PHP 7.0.7 and cURL 7.33.0
- CURLOPT_DNS_LOCAL_IP6 (integer)
- Available since PHP 7.0.7 and cURL 7.33.0
- CURLOPT_XOAUTH2_BEARER (integer)
- Available since PHP 7.0.7 and cURL 7.33.0
- CURLOPT_LOGIN_OPTIONS (integer)
- Available since PHP 7.0.7 and cURL 7.34.0
- CURLOPT_EXPECT_100_TIMEOUT_MS (integer)
- Available since PHP 7.0.7 and cURL 7.36.0
- CURLOPT_SSL_ENABLE_ALPN (integer)
- Available since PHP 7.0.7 and cURL 7.36.0
- CURLOPT_SSL_ENABLE_NPN (integer)
- Available since PHP 7.0.7 and cURL 7.36.0
- CURLOPT_PINNEDPUBLICKEY (integer)
- Available since PHP 7.0.7 and cURL 7.39.0
- CURLOPT_UNIX_SOCKET_PATH (integer)
- Available since PHP 7.0.7 and cURL 7.40.0
- CURLOPT_SSL_VERIFYSTATUS (integer)
- Available since PHP 7.0.7 and cURL 7.41.0
- CURLOPT_PATH_AS_IS (integer)
- Available since PHP 7.0.7 and cURL 7.42.0
- CURLOPT_SSL_FALSESTART (integer)
- Available since PHP 7.0.7 and cURL 7.42.0
- CURLOPT_PIPEWAIT (integer)
- Available since PHP 7.0.7 and cURL 7.43.0
- CURLOPT_PROXY_SERVICE_NAME (integer)
- Available since PHP 7.0.7 and cURL 7.43.0
- CURLOPT_SERVICE_NAME (integer)
- Available since PHP 7.0.7 and cURL 7.43.0
- CURLOPT_DEFAULT_PROTOCOL (integer)
- Available since PHP 7.0.7 and cURL 7.45.0
- CURLOPT_STREAM_WEIGHT (integer)
- Available since PHP 7.0.7 and cURL 7.46.0
- CURLOPT_TFTP_NO_OPTIONS (integer)
- Available since PHP 7.0.7 and cURL 7.48.0
- CURLOPT_CONNECT_TO (integer)
- Available since PHP 7.0.7 and cURL 7.49.0
- CURLOPT_TCP_FASTOPEN (integer)
- Available since PHP 7.0.7 and cURL 7.49.0
- CURLMOPT_PIPELINING (integer)
- Available since PHP 5.5.0 and cURL 7.16.0.
- CURLMOPT_MAXCONNECTS (integer)
- Available since PHP 5.5.0 and cURL 7.16.3.
- CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE (integer)
- Available since PHP 7.0.7 and cURL 7.30.0
- CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE (integer)
- Available since PHP 7.0.7 and cURL 7.30.0
- CURLMOPT_MAX_HOST_CONNECTIONS (integer)
- Available since PHP 7.0.7 and cURL 7.30.0
- CURLMOPT_MAX_PIPELINE_LENGTH (integer)
- Available since PHP 7.0.7 and cURL 7.30.0
- CURLMOPT_MAX_TOTAL_CONNECTIONS (integer)
- Available since PHP 7.0.7 and cURL 7.30.0
- CURLMOPT_PUSHFUNCTION (integer)
- Available since PHP 7.1.0 and cURL 7.44.0
- CURLSSH_AUTH_AGENT (integer)
- Available since PHP 7.0.7 and cURL 7.28.0
- CURLSSH_AUTH_ANY (integer)
- CURLSSH_AUTH_DEFAULT (integer)
- CURLSSH_AUTH_HOST (integer)
- CURLSSH_AUTH_KEYBOARD (integer)
- CURLSSH_AUTH_NONE (integer)
- CURLSSH_AUTH_PASSWORD (integer)
- CURLSSH_AUTH_PUBLICKEY (integer)
- CURL_WRAPPERS_ENABLED (integer)
- Defined if PHP was configured with --with-curlwrappers . Moved to PECL in PHP 5.5.0.
- CURLPAUSE_ALL (integer)
- Available since PHP 5.5.0 and cURL 7.18.0.
- CURLPAUSE_CONT (integer)
- Available since PHP 5.5.0 and cURL 7.18.0.
- CURLPAUSE_RECV (integer)
- Available since PHP 5.5.0 and cURL 7.18.0.
- CURLPAUSE_RECV_CONT (integer)
- Available since PHP 5.5.0 and cURL 7.18.0.
- CURLPAUSE_SEND (integer)
- Available since PHP 5.5.0 and cURL 7.18.0.
- CURLPAUSE_SEND_CONT (integer)
- Available since PHP 5.5.0 and cURL 7.18.0.
- CURLPIPE_NOTHING (integer)
- Available since PHP 7.0.0 and cURL 7.43.0.
- CURLPIPE_HTTP1 (integer)
- Available since PHP 7.0.0 and cURL 7.43.0.
- CURLPIPE_MULTIPLEX (integer)
- Available since PHP 7.0.0 and cURL 7.43.0.
- CURLPROXY_SOCKS4A (integer)
- Available since PHP 5.5.23 and PHP 5.6.7 and cURL 7.18.0.
- CURLPROXY_SOCKS5_HOSTNAME (integer)
- Available since PHP 5.5.23 and PHP 5.6.7 and cURL 7.18.0.
- CURLHEADER_SEPARATE (integer)
- Available since PHP 7.0.7 and cURL 7.37.0.
- CURLHEADER_UNIFIED (integer)
- Available since PHP 7.0.7 and cURL 7.37.0.
- CURLPROTO_SMB (integer)
- Available since PHP 7.0.7 and cURL 7.40.0.
- CURLPROTO_SMBS (integer)
- Available since PHP 7.0.7 and cURL 7.40.0.
cURL Functions
- curl_close — Close a cURL session
- curl_copy_handle — Copy a cURL handle along with all of its preferences
- curl_errno — Return the last error number
- curl_error — Return a string containing the last error for the current session
- curl_escape — URL encodes the given string
- curl_exec — Perform a cURL session
- curl_file_create — Create a CURLFile object
- curl_getinfo — Get information regarding a specific transfer
- curl_init — Initialize a cURL session
- curl_multi_add_handle — Add a normal cURL handle to a cURL multi handle
- curl_multi_close — Close a set of cURL handles
- curl_multi_errno — Return the last multi curl error number
- curl_multi_exec — Run the sub-connections of the current cURL handle
- curl_multi_getcontent — Return the content of a cURL handle if CURLOPT_RETURNTRANSFER is set
- curl_multi_info_read — Get information about the current transfers
- curl_multi_init — Returns a new cURL multi handle
- curl_multi_remove_handle — Remove a multi handle from a set of cURL handles
- curl_multi_select — Wait for activity on any curl_multi connection
- curl_multi_setopt — Set an option for the cURL multi handle
- curl_multi_strerror — Return string describing error code
- curl_pause — Pause and unpause a connection
- curl_reset — Reset all options of a libcurl session handle
- curl_setopt_array — Set multiple options for a cURL transfer
- curl_setopt — Set an option for a cURL transfer
- curl_share_close — Close a cURL share handle
- curl_share_errno — Return the last share curl error number
- curl_share_init — Initialize a cURL share handle
- curl_share_setopt — Set an option for a cURL share handle
- curl_share_strerror — Return string describing the given error code
- curl_strerror — Return string describing the given error code
- curl_unescape — Decodes the given URL encoded string
- curl_version — Gets cURL version information
cURL Predefined Classes
- CURLFile: CURLFile should be used to upload a file with CURLOPT_POSTFIELDS.
- CURLFile::__construct — Create a CURLFile object
- CURLFile::getFilename — Get file name
- CURLFile::getMimeType — Get MIME type
- CURLFile::getPostFilename — Get file name for POST
- CURLFile::setMimeType — Set MIME type
- CURLFile::setPostFilename — Set file name for POST
- CURLFile::__wakeup — Unserialization handler