Predefined Constants

The constants below are defined by this extension, and will only be available when the extension has either been compiled into PHP or dynamically loaded at runtime.

Descriptions and uses for these constants are described within the curl_setopt(), curl_multi_setopt() and curl_getinfo() documentation.

CURLOPT_AUTOREFERER (int)
CURLOPT_COOKIESESSION (int)
CURLOPT_DOH_URL (int)
Provides the DNS-over-HTTPS URL. Available as of PHP 8.1.0 and cURL 7.62.0.
CURLOPT_DOH_SSL_VERIFYHOST (int)
Verify the DNS-over-HTTPS server's SSL certificate name fields against the host name. Available as of PHP 8.2.0 and cURL 7.76.0.
CURLOPT_DOH_SSL_VERIFYPEER (int)
Verify the authenticity of the DNS-over-HTTPS server's SSL certificate. Available as of PHP 8.2.0 and cURL 7.76.0.
CURLOPT_DOH_SSL_VERIFYSTATUS (int)
Tell cURL to verify the status of the DNS-over-HTTPS server certificate using the "Certificate Status Request" TLS extension (OCSP stapling). Available as of PHP 8.2.0 and cURL 7.76.0.
CURLOPT_DNS_USE_GLOBAL_CACHE (int)
CURLOPT_DNS_CACHE_TIMEOUT (int)
CURLOPT_FTP_SSL (int)
CURLFTP_CREATE_DIR (int)
Available as of PHP 7.0.7 and cURL 7.19.3
CURLFTP_CREATE_DIR_NONE (int)
Available as of PHP 7.0.7 and cURL 7.19.3
CURLFTP_CREATE_DIR_RETRY (int)
Available as of PHP 7.0.7 and cURL 7.19.3
CURLFTPSSL_TRY (int)
CURLFTPSSL_ALL (int)
CURLFTPSSL_CONTROL (int)
CURLFTPSSL_NONE (int)
CURLFTPMETHOD_DEFAULT (int)
Available as of PHP 8.2.0 and cURL 7.15.3.
CURLOPT_PRIVATE (int)
CURLOPT_FTPSSLAUTH (int)
CURLOPT_PORT (int)
CURLOPT_FILE (int)
CURLOPT_INFILE (int)
CURLOPT_INFILESIZE (int)
CURLOPT_ISSUERCERT_BLOB (int)
Issuer SSL certificate from memory blob. Available as of PHP 8.1.0 and cURL 7.71.0.
CURLOPT_URL (int)
CURLOPT_PROXY (int)
CURLOPT_PROXY_ISSUERCERT (int)
Proxy issuer SSL certificate filename. Available as of PHP 8.1.0 and cURL 7.71.0.
CURLOPT_PROXY_ISSUERCERT_BLOB (int)
Proxy issuer SSL certificate from memory blob. Available as of PHP 8.1.0 and cURL 7.71.0.
CURLOPT_PROXY_SSLCERT_BLOB (int)
SSL proxy client certificate from memory blob. Available as of PHP 8.1.0 and cURL 7.71.0.
CURLOPT_PROXY_SSLKEY_BLOB (int)
Private key for proxy cert from memory blob. Available as of PHP 8.1.0 and cURL 7.71.0.
CURLOPT_VERBOSE (int)
CURLOPT_ALTSVC (int)
Available as of PHP 8.2.0 and cURL 7.64.1.
CURLOPT_ALTSVC_CTRL (int)
Available as of PHP 8.2.0 and cURL 7.64.1.
CURLALTSVC_H1 (int)
Available as of PHP 8.2.0 and cURL 7.64.1.
CURLALTSVC_H2 (int)
Available as of PHP 8.2.0 and cURL 7.64.1.
CURLALTSVC_H3 (int)
Available as of PHP 8.2.0 and cURL 7.64.1.
CURLALTSVC_READONLYFILE (int)
Available as of PHP 8.2.0 and cURL 7.64.1.
CURLOPT_HEADER (int)
CURLOPT_HTTPHEADER (int)
CURLOPT_NOPROGRESS (int)
CURLOPT_NOBODY (int)
CURLOPT_FAILONERROR (int)
CURLOPT_UPLOAD (int)
CURLOPT_UPLOAD_BUFFERSIZE (int)
Available as of PHP 8.2.0 and cURL 7.62.0
CURLOPT_POST (int)
CURLOPT_FTPLISTONLY (int)
CURLOPT_FTPAPPEND (int)
CURLOPT_FTP_CREATE_MISSING_DIRS (int)
CURLOPT_NETRC (int)
CURLOPT_FOLLOWLOCATION (int)
This constant is not available when open_basedir is enabled.
CURLOPT_FTPASCII (int)
CURLOPT_PUT (int)
CURLOPT_MIME_OPTIONS (int)
Available as of PHP 8.3.0 and cURL 7.81.0
CURLOPT_MUTE (int)
Removed as of cURL 7.15.5; use CURLOPT_RETURNTRANSFER instead.
CURLOPT_USERPWD (int)
CURLOPT_PROXYUSERPWD (int)
CURLOPT_RANGE (int)
CURLOPT_TIMEOUT (int)
CURLOPT_TIMEOUT_MS (int)
CURLOPT_TCP_NODELAY (int)
CURLOPT_POSTFIELDS (int)
CURLOPT_PROGRESSFUNCTION (int)
CURLOPT_REFERER (int)
CURLOPT_USERAGENT (int)
CURLOPT_FTPPORT (int)
CURLOPT_FTP_USE_EPSV (int)
CURLOPT_LOW_SPEED_LIMIT (int)
CURLOPT_LOW_SPEED_TIME (int)
CURLOPT_RESUME_FROM (int)
CURLOPT_COOKIELIST (int)
Available as of cURL 7.14.1
CURLOPT_SSLCERT (int)
CURLOPT_SSLCERT_BLOB (int)
SSL client certificate from memory blob. Available as of PHP 8.1.0 and cURL 7.71.0.
CURLOPT_SSLCERTPASSWD (int)
CURLOPT_SSLKEY_BLOB (int)
Private key for client cert from memory blob. Available as of PHP 8.1.0 and cURL 7.71.0.
CURLOPT_WRITEHEADER (int)
CURLOPT_WS_OPTIONS (int)
Available as of PHP 8.3.0 and cURL 7.86.0
CURLOPT_SSL_VERIFYHOST (int)
CURLOPT_COOKIEFILE (int)
CURLOPT_SSLVERSION (int)
CURL_SSLVERSION_DEFAULT (int)
CURL_SSLVERSION_TLSv1 (int)
CURL_SSLVERSION_SSLv2 (int)
CURL_SSLVERSION_SSLv3 (int)
CURL_SSLVERSION_TLSv1_0 (int)
CURL_SSLVERSION_TLSv1_1 (int)
CURL_SSLVERSION_TLSv1_2 (int)
CURL_SSLVERSION_TLSv1_3 (int)
CURLOPT_TIMECONDITION (int)
CURLOPT_TIMEVALUE (int)
CURLOPT_CUSTOMREQUEST (int)
CURLOPT_STDERR (int)
CURLOPT_TRANSFERTEXT (int)
CURLOPT_RETURNTRANSFER (int)
CURLOPT_QUICK_EXIT (int)
Available as of PHP 8.3.0 and cURL 7.87.0
CURLOPT_QUOTE (int)
CURLOPT_POSTQUOTE (int)
CURLOPT_INTERFACE (int)
CURLOPT_KRB4LEVEL (int)
CURLOPT_HTTPPROXYTUNNEL (int)
CURLOPT_FILETIME (int)
CURLOPT_WRITEFUNCTION (int)
CURLOPT_READFUNCTION (int)
CURLOPT_PASSWDFUNCTION (int)
Removed as of PHP 7.3.0.
CURLOPT_HEADERFUNCTION (int)
CURLOPT_MAXAGE_CONN (int)
Available as of PHP 8.2.0 and cURL 7.65.0
CURLOPT_MAXFILESIZE_LARGE (int)
Available as of PHP 8.2.0 and cURL 7.11.0
CURLOPT_MAXLIFETIME_CONN (int)
Available as of PHP 8.2.0 and cURL 7.80.0
CURLOPT_MAXREDIRS (int)
CURLOPT_MAXCONNECTS (int)
CURLOPT_FRESH_CONNECT (int)
CURLOPT_FORBID_REUSE (int)
CURLOPT_RANDOM_FILE (int)
CURLOPT_EGDSOCKET (int)
CURLOPT_CONNECTTIMEOUT (int)
CURLOPT_CONNECTTIMEOUT_MS (int)
CURLOPT_SSL_VERIFYPEER (int)
CURLOPT_CA_CACHE_TIMEOUT (int)
Available as of PHP 8.3.0 and cURL 7.87.0
CURLOPT_CAINFO (int)
CURLOPT_CAINFO_BLOB (int)
Available as of PHP 8.2.0 and cURL 7.77.0
CURLOPT_CAPATH (int)
CURLOPT_COOKIEJAR (int)
CURLOPT_SSL_CIPHER_LIST (int)
CURLOPT_SSL_EC_CURVES (int)
Available as of PHP 8.2.0 and cURL 7.73.0
CURLOPT_BINARYTRANSFER (int)
CURLOPT_NOSIGNAL (int)
CURLOPT_PROXYTYPE (int)
Available as of cURL 7.10.
CURLOPT_BUFFERSIZE (int)
CURLOPT_HTTPGET (int)
CURLOPT_HTTP_VERSION (int)
CURLOPT_HSTS (int)
Available as of PHP 8.2.0 and cURL 7.74.0
CURLOPT_HSTS_CTRL (int)
Available as of PHP 8.2.0 and cURL 7.74.0
CURLHSTS_ENABLE (int)
Available as of PHP 8.2.0 and cURL 7.74.0
CURLHSTS_READONLYFILE (int)
Available as of PHP 8.2.0 and cURL 7.74.0
CURLOPT_SSLKEY (int)
CURLOPT_SSLKEYTYPE (int)
CURLOPT_SSLKEYPASSWD (int)
CURLOPT_SSLENGINE (int)
CURLOPT_SSLENGINE_DEFAULT (int)
CURLOPT_SSLCERTTYPE (int)
CURLOPT_CRLF (int)
CURLOPT_ENCODING (int)
CURLOPT_PROXYPORT (int)
CURLOPT_UNRESTRICTED_AUTH (int)
CURLOPT_FTP_USE_EPRT (int)
CURLOPT_HTTP200ALIASES (int)
CURLOPT_HTTPAUTH (int)
CURLOPT_AWS_SIGV4 (int)
Available as of PHP 8.2.0 and cURL 7.75.0
CURLAUTH_BASIC (int)
CURLAUTH_DIGEST (int)
CURLAUTH_GSSNEGOTIATE (int)
CURLAUTH_NEGOTIATE (int)
Available as of PHP 7.0.7 and cURL 7.38.0.
CURLAUTH_NTLM (int)
CURLAUTH_NTLM_WB (int)
Available as of PHP 7.0.7 and cURL 7.22.0
CURLAUTH_ANY (int)
CURLAUTH_ANYSAFE (int)
CURLAUTH_AWS_SIGV4 (int)
Available as of PHP 8.2.0 and cURL 7.75.0.
CURLOPT_PROXYAUTH (int)
CURLOPT_MAIL_RCPT_ALLLOWFAILS (int)
Available as of PHP 8.2.0 and cURL 7.69.0
CURLOPT_UPKEEP_INTERVAL_MS (int)
Available as of PHP 8.2.0 and cURL 7.62.0
CURLOPT_MAX_RECV_SPEED_LARGE (int)
Available as of cURL 7.15.5
CURLOPT_MAX_SEND_SPEED_LARGE (int)
Available as of cURL 7.15.5
CURLOPT_HEADEROPT (int)
Available as of PHP 7.0.7 and cURL 7.37.0
CURLOPT_PROXYHEADER (int)
Available as of PHP 7.0.7 and cURL 7.37.0
CURLPX_BAD_ADDRESS_TYPE (int)
Available as of PHP 8.2.0 and cURL 7.73.0
CURLPX_BAD_VERSION (int)
Available as of PHP 8.2.0 and cURL 7.73.0
CURLPX_CLOSED (int)
Available as of PHP 8.2.0 and cURL 7.73.0
CURLPX_GSSAPI (int)
Available as of PHP 8.2.0 and cURL 7.73.0
CURLPX_GSSAPI_PERMSG (int)
Available as of PHP 8.2.0 and cURL 7.73.0
CURLPX_GSSAPI_PROTECTION (int)
Available as of PHP 8.2.0 and cURL 7.73.0
CURLPX_IDENTD_DIFFER (int)
Available as of PHP 8.2.0 and cURL 7.73.0
CURLPX_IDENTD (int)
Available as of PHP 8.2.0 and cURL 7.73.0
CURLPX_LONG_HOSTNAME (int)
Available as of PHP 8.2.0 and cURL 7.73.0
CURLPX_LONG_PASSWD (int)
Available as of PHP 8.2.0 and cURL 7.73.0
CURLPX_LONG_USER (int)
Available as of PHP 8.2.0 and cURL 7.73.0
CURLPX_NO_AUTH (int)
Available as of PHP 8.2.0 and cURL 7.73.0
CURLPX_OK (int)
Available as of PHP 8.2.0 and cURL 7.73.0
CURLPX_RECV_ADDRESS (int)
Available as of PHP 8.2.0 and cURL 7.73.0
CURLPX_RECV_AUTH (int)
Available as of PHP 8.2.0 and cURL 7.73.0
CURLPX_RECV_CONNECT (int)
Available as of PHP 8.2.0 and cURL 7.73.0
CURLPX_RECV_REQACK (int)
Available as of PHP 8.2.0 and cURL 7.73.0
CURLPX_REPLY_ADDRESS_TYPE_NOT_SUPPORTED (int)
Available as of PHP 8.2.0 and cURL 7.73.0
CURLPX_REPLY_COMMAND_NOT_SUPPORTED (int)
Available as of PHP 8.2.0 and cURL 7.73.0
CURLPX_REPLY_CONNECTION_REFUSED (int)
Available as of PHP 8.2.0 and cURL 7.73.0
CURLPX_REPLY_GENERAL_SERVER_FAILURE (int)
Available as of PHP 8.2.0 and cURL 7.73.0
CURLPX_REPLY_HOST_UNREACHABLE (int)
Available as of PHP 8.2.0 and cURL 7.73.0
CURLPX_REPLY_NETWORK_UNREACHABLE (int)
Available as of PHP 8.2.0 and cURL 7.73.0
CURLPX_REPLY_NOT_ALLOWED (int)
Available as of PHP 8.2.0 and cURL 7.73.0
CURLPX_REPLY_TTL_EXPIRED (int)
Available as of PHP 8.2.0 and cURL 7.73.0
CURLPX_REPLY_UNASSIGNED (int)
Available as of PHP 8.2.0 and cURL 7.73.0
CURLPX_REQUEST_FAILED (int)
Available as of PHP 8.2.0 and cURL 7.73.0
CURLPX_RESOLVE_HOST (int)
Available as of PHP 8.2.0 and cURL 7.73.0
CURLPX_SEND_AUTH (int)
Available as of PHP 8.2.0 and cURL 7.73.0
CURLPX_SEND_CONNECT (int)
Available as of PHP 8.2.0 and cURL 7.73.0
CURLPX_SEND_REQUEST (int)
Available as of PHP 8.2.0 and cURL 7.73.0
CURLPX_UNKNOWN_FAIL (int)
Available as of PHP 8.2.0 and cURL 7.73.0
CURLPX_UNKNOWN_MODE (int)
Available as of PHP 8.2.0 and cURL 7.73.0
CURLPX_USER_REJECTED (int)
Available as of PHP 8.2.0 and cURL 7.73.0
CURL_PUSH_OK (int)
Available as of PHP 7.1.0 and cURL 7.44.0
CURL_PUSH_DENY (int)
Available as of PHP 7.1.0 and cURL 7.44.0
CURL_REDIR_POST_301 (int)
Available as of PHP 7.0.7 and cURL 7.18.2
CURL_REDIR_POST_302 (int)
Available as of PHP 7.0.7 and cURL 7.18.2
CURL_REDIR_POST_303 (int)
Available as of PHP 7.0.7 and cURL 7.25.1
CURL_REDIR_POST_ALL (int)
Available as of PHP 7.0.7 and cURL 7.18.2
CURL_TIMECOND_NONE (int)
CURL_TIMECOND_IFMODSINCE (int)
CURL_TIMECOND_IFUNMODSINCE (int)
CURL_TIMECOND_LASTMOD (int)
CURL_VERSION_ALTSVC (int)
Available as of PHP 7.3.6 and cURL 7.64.1
CURL_VERSION_ASYNCHDNS (int)
Asynchronous DNS resolves. Available as of PHP 7.3.0 and cURL 7.10.7
CURL_VERSION_BROTLI (int)
Available as of PHP 7.3.0 and cURL 7.57.0
CURL_VERSION_CONV (int)
Character conversions supported. Available as of PHP 7.3.0 and cURL 7.15.4
CURL_VERSION_CURLDEBUG (int)
Debug memory tracking supported. Available as of PHP 7.3.6 and cURL 7.19.6
CURL_VERSION_DEBUG (int)
Built with debug capabilities. Available as of PHP 7.3.0 and cURL 7.10.6
CURL_VERSION_GSASL (int)
Available as of PHP 8.2.0 and cURL 7.76.0
CURL_VERSION_GSSAPI (int)
Built against a GSS-API library. Available as of PHP 7.3.0 and cURL 7.38.0
CURL_VERSION_GSSNEGOTIATE (int)
Negotiate auth is supported. Available as of PHP 7.3.0 and cURL 7.10.6 (deprecated as of 7.38.0)
CURL_VERSION_HSTS (int)
Available as of PHP 8.2.0 and cURL 7.74.0
CURL_VERSION_IDN (int)
Internationized Domain Names are supported. Available as of PHP 7.3.0 and cURL 7.12.0
CURL_VERSION_MULTI_SSL (int)
Available as of PHP 7.3.0 and cURL 7.56.0
CURL_VERSION_NTLM (int)
NTLM auth is supported. Available as of PHP 7.3.0 and cURL 7.10.6
CURL_VERSION_NTLM_WB (int)
NTLM delegation to winbind helper is supported. Available as of PHP 7.3.0 and cURL 7.22.0
CURL_VERSION_IPV6 (int)
IPv6-enabled.
CURL_VERSION_KERBEROS4 (int)
Kerberos V4 auth is supported.
CURL_VERSION_KERBEROS5 (int)
Kerberos V5 auth is supported. Available as of PHP 7.0.7 and cURL 7.40.0
CURL_VERSION_HTTP2 (int)
HTTP2 support built-in. Available as of cURL 7.33.0
CURL_VERSION_HTTP3 (int)
Available as of PHP 8.2.0 and cURL 7.66.0
CURL_VERSION_LARGEFILE (int)
Supports files larger than 2GB. Available as of cURL 7.33.0
CURL_VERSION_PSL (int)
Mozilla's Public Suffix List, used for cookie domain verification. Available as of PHP 7.3.6 and cURL 7.47.0
CURL_VERSION_SPNEGO (int)
SPNEGO auth is supported. Available as of PHP 7.3.0 and cURL 7.10.8
CURL_VERSION_SSPI (int)
Built against Windows SSPI. Available as of PHP 7.3.0 and cURL 7.13.2
CURL_VERSION_SSL (int)
SSL options are present.
CURL_VERSION_TLSAUTH_SRP (int)
TLS-SRP auth is supported. Available as of PHP 7.3.0 and cURL 7.21.4
CURL_VERSION_UNICODE (int)
Available as of PHP 8.2.0 and cURL 7.72.0
CURL_VERSION_UNIX_SOCKETS (int)
Unix domain sockets support. Available as of PHP 7.0.7 and cURL 7.40.0
CURL_VERSION_ZSTD (int)
Available as of PHP 8.2.0 and cURL 7.72.0
CURL_VERSION_LIBZ (int)
libz features are present.
CURLVERSION_NOW (int)
CURLFTPAUTH_DEFAULT (int)
CURLFTPAUTH_SSL (int)
CURLFTPAUTH_TLS (int)
CURLPROXY_HTTP (int)
Available as of cURL 7.10.
CURLPROXY_HTTP_1_0 (int)
Available as of PHP 7.0.7 and cURL 7.19.3
CURLPROXY_SOCKS4 (int)
Available as of cURL 7.10.
CURLPROXY_SOCKS5 (int)
Available as of cURL 7.10.
CURL_NETRC_OPTIONAL (int)
CURL_NETRC_IGNORED (int)
CURL_NETRC_REQUIRED (int)
CURL_HTTP_VERSION_NONE (int)
CURL_HTTP_VERSION_1_0 (int)
CURL_HTTP_VERSION_1_1 (int)
CURL_HTTP_VERSION_2 (int)
Available as of PHP 7.0.7 and cURL 7.43.0
CURL_HTTP_VERSION_2_0 (int)
Available as of cURL 7.33.0
CURL_HTTP_VERSION_2TLS (int)
Available as of PHP 7.0.7 and cURL 7.47.0
CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE (int)
Available as of PHP 7.0.7 and cURL 7.49.0
CURLMSG_DONE (int)
CURLOPT_KEYPASSWD (int)
CURLOPT_SSH_AUTH_TYPES (int)
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 (int)
CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256 (int)
Available as of PHP 8.2.0 and cURL 7.80.0
CURLOPT_SSH_HOSTKEYFUNCTION (int)
Available as of PHP 8.3.0 and cURL 7.84.0
CURLOPT_SSH_PRIVATE_KEYFILE (int)
CURLOPT_SSH_PUBLIC_KEYFILE (int)
CURLOPT_SSL_OPTIONS (int)
Available as of cURL 7.25.0
CURLSSLOPT_ALLOW_BEAST (int)
Available as of cURL 7.25.0
CURLSSLOPT_NO_REVOKE (int)
Available as of PHP 7.0.7 and cURL 7.44.0
CURLSSLOPT_AUTO_CLIENT_CERT (int)
Available as of PHP 8.2.0 and cURL 7.77.0
CURLSSLOPT_NATIVE_CA (int)
Available as of PHP 8.2.0 and cURL 7.71.0
CURLSSLOPT_NO_PARTIALCHAIN (int)
Available as of PHP 8.2.0 and cURL 7.68.0
CURLSSLOPT_REVOKE_BEST_EFFORT (int)
Available as of PHP 8.2.0 and cURL 7.70.0
CURLOPT_USERNAME (int)
Available as of cURL 7.19.1
CURLOPT_SASL_AUTHZID (int)
Available as of PHP 8.2.0 and cURL 7.66.0
CURLOPT_SASL_IR (int)
Available as of PHP 7.0.7 and cURL 7.31.0
CURLOPT_DNS_INTERFACE (int)
Available as of PHP 7.0.7 and cURL 7.33.0
CURLOPT_DNS_LOCAL_IP4 (int)
Available as of PHP 7.0.7 and cURL 7.33.0
CURLOPT_DNS_LOCAL_IP6 (int)
Available as of PHP 7.0.7 and cURL 7.33.0
CURLOPT_XOAUTH2_BEARER (int)
Available as of PHP 7.0.7 and cURL 7.33.0
CURLOPT_LOGIN_OPTIONS (int)
Available as of PHP 7.0.7 and cURL 7.34.0
CURLOPT_EXPECT_100_TIMEOUT_MS (int)
Available as of PHP 7.0.7 and cURL 7.36.0
CURLOPT_SSL_ENABLE_ALPN (int)
Available as of PHP 7.0.7 and cURL 7.36.0
CURLOPT_SSL_ENABLE_NPN (int)
Available as of PHP 7.0.7 and cURL 7.36.0
CURLOPT_PINNEDPUBLICKEY (int)
Available as of PHP 7.0.7 and cURL 7.39.0
CURLOPT_UNIX_SOCKET_PATH (int)
Available as of PHP 7.0.7 and cURL 7.40.0
CURLOPT_SSL_VERIFYSTATUS (int)
Available as of PHP 7.0.7 and cURL 7.41.0
CURLOPT_PATH_AS_IS (int)
Available as of PHP 7.0.7 and cURL 7.42.0
CURLOPT_SSL_FALSESTART (int)
Available as of PHP 7.0.7 and cURL 7.42.0
CURLOPT_PIPEWAIT (int)
Available as of PHP 7.0.7 and cURL 7.43.0
CURLOPT_PROTOCOLS_STR (int)
Available as of PHP 8.3.0 and cURL 7.85.0
CURLOPT_PROXY_SERVICE_NAME (int)
Available as of PHP 7.0.7 and cURL 7.43.0
CURLOPT_SERVICE_NAME (int)
Available as of PHP 7.0.7 and cURL 7.43.0
CURLOPT_DEFAULT_PROTOCOL (int)
Available as of PHP 7.0.7 and cURL 7.45.0
CURLOPT_STREAM_WEIGHT (int)
Available as of PHP 7.0.7 and cURL 7.46.0
CURLOPT_TFTP_NO_OPTIONS (int)
Available as of PHP 7.0.7 and cURL 7.48.0
CURLOPT_CONNECT_TO (int)
Available as of PHP 7.0.7 and cURL 7.49.0
CURLOPT_TCP_FASTOPEN (int)
Available as of PHP 7.0.7 and cURL 7.49.0
CURLOPT_TCP_KEEPALIVE (int)
Available as of cURL 7.25.0
CURLOPT_TCP_KEEPIDLE (int)
Available as of cURL 7.25.0
CURLOPT_TCP_KEEPINTVL (int)
Available as of cURL 7.25.0
CURLSSH_AUTH_AGENT (int)
Available as of PHP 7.0.7 and cURL 7.28.0
CURLSSH_AUTH_ANY (int)
CURLSSH_AUTH_DEFAULT (int)
CURLSSH_AUTH_HOST (int)
CURLSSH_AUTH_KEYBOARD (int)
CURLSSH_AUTH_NONE (int)
CURLSSH_AUTH_PASSWORD (int)
CURLSSH_AUTH_PUBLICKEY (int)
CURLPIPE_NOTHING (int)
Available as of cURL 7.43.0.
CURLPIPE_HTTP1 (int)
Available as of cURL 7.43.0.
CURLPIPE_MULTIPLEX (int)
Available as of cURL 7.43.0.
CURLPROXY_SOCKS4A (int)
Available as of cURL 7.18.0.
CURLPROXY_SOCKS5_HOSTNAME (int)
Available as of cURL 7.18.0.
CURLHEADER_SEPARATE (int)
Available as of PHP 7.0.7 and cURL 7.37.0.
CURLHEADER_UNIFIED (int)
Available as of PHP 7.0.7 and cURL 7.37.0.
CURLOPT_REDIR_PROTOCOLS_STR (int)
Available as of PHP 8.3.0 and cURL 7.85.0.
CURLOPT_REQUEST_TARGET (int)
Available as of PHP 7.3.0 and cURL 7.55.0.
CURLAUTH_GSSAPI (int)
Available as of PHP 7.3.0 and cURL 7.54.1
CURL_MAX_READ_SIZE (int)
Available as of PHP 7.3.0 and cURL 7.53.0
CURLOPT_ABSTRACT_UNIX_SOCKET (int)
Available as of PHP 7.3.0 and cURL 7.53.0
CURLOPT_KEEP_SENDING_ON_ERROR (int)
Available as of PHP 7.3.0 and cURL 7.51.0
CURLOPT_PRE_PROXY (int)
Available as of PHP 7.3.0 and cURL 7.52.0
CURLOPT_PROXY_CAINFO (int)
Available as of PHP 7.3.0 and cURL 7.52.0
CURLOPT_PROXY_CAINFO_BLOB (int)
Available as of PHP 8.2.0 and cURL 7.77.0
CURLOPT_PROXY_CAPATH (int)
Available as of PHP 7.3.0 and cURL 7.52.0
CURLOPT_PROXY_CRLFILE (int)
Available as of PHP 7.3.0 and cURL 7.52.0
CURLOPT_PROXY_KEYPASSWD (int)
Available as of PHP 7.3.0 and cURL 7.52.0
CURLOPT_PROXY_PINNEDPUBLICKEY (int)
Available as of PHP 7.3.0 and cURL 7.52.0
CURLOPT_PROXY_SSLCERT (int)
Available as of PHP 7.3.0 and cURL 7.52.0
CURLOPT_PROXY_SSLCERTTYPE (int)
Available as of PHP 7.3.0 and cURL 7.52.0
CURLOPT_PROXY_SSL_CIPHER_LIST (int)
Available as of PHP 7.3.0 and cURL 7.52.0
CURLOPT_PROXY_SSLKEY (int)
Available as of PHP 7.3.0 and cURL 7.52.0
CURLOPT_PROXY_SSLKEYTYPE (int)
Available as of PHP 7.3.0 and cURL 7.52.0
CURLOPT_PROXY_SSL_OPTIONS (int)
Available as of PHP 7.3.0 and cURL 7.52.0
CURLOPT_PROXY_SSL_VERIFYHOST (int)
Available as of PHP 7.3.0 and cURL 7.52.0
CURLOPT_PROXY_SSL_VERIFYPEER (int)
Available as of PHP 7.3.0 and cURL 7.52.0
CURLOPT_PROXY_SSLVERSION (int)
Available as of PHP 7.3.0 and cURL 7.52.0
CURLOPT_PROXY_TLSAUTH_PASSWORD (int)
Available as of PHP 7.3.0 and cURL 7.52.0
CURLOPT_PROXY_TLSAUTH_TYPE (int)
Available as of PHP 7.3.0 and cURL 7.52.0
CURLOPT_PROXY_TLSAUTH_USERNAME (int)
Available as of PHP 7.3.0 and cURL 7.52.0
CURLOPT_SOCKS5_AUTH (int)
Available as of PHP 7.3.0 and cURL 7.55.0
CURLOPT_SUPPRESS_CONNECT_HEADERS (int)
Available as of PHP 7.3.0 and cURL 7.54.0
CURLPROXY_HTTPS (int)
Available as of PHP 7.3.0 and cURL 7.52.0
CURL_SSLVERSION_MAX_DEFAULT (int)
Available as of PHP 7.3.0 and cURL 7.54.0
CURL_SSLVERSION_MAX_NONE (int)
Available as of PHP 7.3.0 and cURL 7.54.0
CURL_SSLVERSION_MAX_TLSv1_0 (int)
Available as of PHP 7.3.0 and cURL 7.54.0
CURL_SSLVERSION_MAX_TLSv1_1 (int)
Available as of PHP 7.3.0 and cURL 7.54.0
CURL_SSLVERSION_MAX_TLSv1_2 (int)
Available as of PHP 7.3.0 and cURL 7.54.0
CURL_SSLVERSION_MAX_TLSv1_3 (int)
Available as of PHP 7.3.0 and cURL 7.54.0
CURL_SSLVERSION_TLSv1_3 (int)
Available as of PHP 7.3.0 and cURL 7.52.0
CURL_VERSION_HTTPS_PROXY (int)
Available as of PHP 7.3.0 and cURL 7.52.0
CURLAUTH_BEARER (int)
Available as of PHP 7.3.0 and cURL 7.61.0.
CURLOPT_DISALLOW_USERNAME_IN_URL (int)
Available as of PHP 7.3.0 and cURL 7.61.0
CURLOPT_DNS_SHUFFLE_ADDRESSES (int)
Available as of PHP 7.3.0 and cURL 7.60.0
CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS (int)
Available as of PHP 7.3.0 and cURL 7.59.0
CURLOPT_HAPROXYPROTOCOL (int)
Available as of PHP 7.3.0 and cURL 7.60.0
CURLOPT_PROXY_TLS13_CIPHERS (int)
Available as of PHP 7.3.0 and cURL 7.61.0
CURLOPT_SSH_COMPRESSION (int)
Available as of PHP 7.3.0 and cURL 7.56.0
CURLOPT_TIMEVALUE_LARGE (int)
Available as of PHP 7.3.0 and cURL 7.59.0
CURLOPT_TLS13_CIPHERS (int)
Available as of PHP 7.3.0 and cURL 7.61.0
CURLSSH_AUTH_GSSAPI (int)
Available as of PHP 7.3.0 and cURL 7.58.0
CURLOPT_HTTP09_ALLOWED (int)
Available as of PHP 7.3.15 and 7.4.3, respectively, and cURL 7.64.0
CURLMIMEOPT_FORMESCAPE (int)
Available as of PHP 8.3.0 and cURL 7.81.0
CURLWS_RAW_MODE (int)
Available as of PHP 8.3.0 and cURL 7.86.0
CURLKHMATCH_OK (int)
Available as of PHP 8.3.0 and cURL 7.19.6
CURLKHMATCH_MISMATCH (int)
Available as of PHP 8.3.0 and cURL 7.19.6
CURLKHMATCH_MISSING (int)
Available as of PHP 8.3.0 and cURL 7.19.6
CURLKHMATCH_LAST (int)
Available as of PHP 8.3.0 and cURL 7.19.6
curl_share_setopt()
Constants Description
CURL_LOCK_DATA_CONNECT (int) Shares/unshares the connection cache. Available as of PHP 7.3.0 and cURL 7.10.0
Shares/unshares cookie data.
CURL_LOCK_DATA_DNS (int) Shares/unshares DNS cache. Note that when you use cURL multi handles, all handles added to the same multi handle will share DNS cache by default.
CURL_LOCK_DATA_PSL (int) Shares/unshares the Public Suffix List. Available as of PHP 7.3.0 and cURL 7.61.0
CURL_LOCK_DATA_SSL_SESSION (int) Shares/unshares SSL session IDs, reducing the time spent on the SSL handshake when reconnecting to the same server. Note that SSL session IDs are reused within the same handle by default.
CURLSHOPT_NONE (int)
CURLSHOPT_SHARE (int) Specifies a type of data that should be shared.
CURLSHOPT_UNSHARE (int) Specifies a type of data that will be no longer shared.
curl_getinfo()
Constants Description
CURLINFO_APPCONNECT_TIME (int) Time in seconds it took from the start until the SSL/SSH connect/handshake to the remote host was completed
CURLINFO_APPCONNECT_TIME_T (int) Time, in microseconds, it took from the start until the SSL/SSH connect/handshake to the remote host was completed. Available as of PHP 7.3.0 and cURL 7.61.0
CURLINFO_CAINFO (int) Default built-in CA certificate path. Available as of PHP 8.3.0 and cURL 7.84.0
CURLINFO_CAPATH (int) Default built-in CA path string. Available as of PHP 8.3.0 and cURL 7.84.0
CURLINFO_CERTINFO (int) TLS certificate chain
CURLINFO_CONDITION_UNMET (int) Info on unmet time conditional
CURLINFO_CONNECT_TIME (int) Time in seconds it took to establish the connection
CURLINFO_CONNECT_TIME_T (int) Total time taken, in microseconds, from the start until the connection to the remote host (or proxy) was completed. Available as of PHP 7.3.0 and cURL 7.61.0
CURLINFO_CONTENT_LENGTH_DOWNLOAD (int) Content length of download, read from Content-Length: field
CURLINFO_CONTENT_LENGTH_DOWNLOAD_T (int) The content-length of the download. This is the value read from the Content-Length: field. -1 if the size isn't known. Available as of PHP 7.3.0 and cURL 7.55.0
CURLINFO_CONTENT_LENGTH_UPLOAD (int) Specified size of upload
CURLINFO_CONTENT_LENGTH_UPLOAD_T (int) The specified size of the upload. -1 if the size isn't known. Available as of PHP 7.3.0 and cURL 7.55.0
CURLINFO_CONTENT_TYPE (int) Content-Type: of the requested document. NULL indicates server did not send valid Content-Type: header
CURLINFO_COOKIELIST (int) All known cookies
CURLINFO_EFFECTIVE_METHOD (int) Get the last used HTTP method.
CURLINFO_EFFECTIVE_URL (int) Last effective URL
CURLINFO_FILETIME (int) Remote time of the retrieved document, with the CURLOPT_FILETIME enabled; if -1 is returned the time of the document is unknown
CURLINFO_FILETIME_T (int) 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. Available as of PHP 7.3.0 and cURL 7.59.0
CURLINFO_FTP_ENTRY_PATH (int) Entry path in FTP server
CURLINFO_HEADER_OUT (int) The request string sent. For this to work, add the CURLINFO_HEADER_OUT option to the handle by calling curl_setopt()
CURLINFO_HEADER_SIZE (int) Total size of all headers received
CURLINFO_HTTPAUTH_AVAIL (int) Bitmask indicating the authentication method(s) available according to the previous response
CURLINFO_HTTP_CODE (int) The last response code. As of cURL 7.10.8, this is a legacy alias of CURLINFO_RESPONSE_CODE.
CURLINFO_HTTP_CONNECTCODE (int) The CONNECT response code
CURLINFO_HTTP_VERSION (int) 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. Available as of PHP 7.3.0 and cURL 7.50.0
CURLINFO_LASTONE (int) The last enum value in the underlying CURLINFO enum in libcurl.
CURLINFO_LOCAL_IP (int) Local (source) IP address of the most recent connection
CURLINFO_LOCAL_PORT (int) Local (source) port of the most recent connection
CURLINFO_NAMELOOKUP_TIME (int) Time in seconds until name resolving was complete
CURLINFO_NAMELOOKUP_TIME_T (int) Time in microseconds from the start until the name resolving was completed. Available as of PHP 7.3.0 and cURL 7.61.0
CURLINFO_NUM_CONNECTS (int) Number of connections curl had to create to achieve the previous transfer
CURLINFO_OS_ERRNO (int) Errno from a connect failure. The number is OS and system specific.
CURLINFO_PRETRANSFER_TIME (int) Time in seconds from start until just before file transfer begins
CURLINFO_PRETRANSFER_TIME_T (int) Time taken from the start until the file transfer is just about to begin, in microseconds. Available as of PHP 7.3.0 and cURL 7.61.0
CURLINFO_PRIMARY_IP (int) IP address of the most recent connection
CURLINFO_PRIMARY_PORT (int) Destination port of the most recent connection
CURLINFO_PRIVATE (int) Private data associated with this cURL handle, previously set with the CURLOPT_PRIVATE option of curl_setopt()
CURLINFO_PROTOCOL (int) The protocol used in the last HTTP connection. The returned value will be exactly one of the CURLPROTO_* values. Available as of PHP 7.3.0 and cURL 7.52.0
CURLINFO_PROXYAUTH_AVAIL (int) Bitmask indicating the proxy authentication method(s) available according to the previous response
CURLINFO_PROXY_ERROR (int) 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. Available as of PHP 8.2.0 and cURL 7.73.0
CURLINFO_PROXY_SSL_VERIFYRESULT (int) The result of the certificate verification that was requested (using the CURLOPT_PROXY_SSL_VERIFYPEER option). Only used for HTTPS proxies. Available as of PHP 7.3.0 and cURL 7.52.0
CURLINFO_REDIRECT_COUNT (int) Number of redirects, with the CURLOPT_FOLLOWLOCATION option enabled
CURLINFO_REDIRECT_TIME (int) Time in seconds of all redirection steps before final transaction was started, with the CURLOPT_FOLLOWLOCATION option enabled
CURLINFO_REDIRECT_TIME_T (int) Total time, in microseconds, it took for all redirection steps include name lookup, connect, pretransfer and transfer before final transaction was started. Available as of PHP 7.3.0 and cURL 7.61.0
CURLINFO_REDIRECT_URL (int) 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_REFERER (int) The referrer header. Available as of PHP 8.2.0 and cURL 7.76.0
CURLINFO_REQUEST_SIZE (int) Total size of issued requests, currently only for HTTP requests
CURLINFO_RESPONSE_CODE (int) The last response code. Available as of cURL 7.10.8
CURLINFO_RETRY_AFTER (int) The information from the Retry-After: header, or zero if there was no valid header. Available as of PHP 8.2.0 and cURL 7.66.0
CURLINFO_RTSP_CLIENT_CSEQ (int) Next RTSP client CSeq
CURLINFO_RTSP_CSEQ_RECV (int) Recently received CSeq
CURLINFO_RTSP_SERVER_CSEQ (int) Next RTSP server CSeq
CURLINFO_RTSP_SESSION_ID (int) RTSP session ID
CURLINFO_SCHEME (int) The URL scheme used for the most recent connection. Available as of PHP 7.3.0 and cURL 7.52.0
CURLINFO_SIZE_DOWNLOAD (int) Total number of bytes downloaded
CURLINFO_SIZE_DOWNLOAD_T (int) Total number of bytes that were downloaded. The number is only for the latest transfer and will be reset again for each new transfer. Available as of PHP 7.3.0 and cURL 7.50.0
CURLINFO_SIZE_UPLOAD (int) Total number of bytes uploaded
CURLINFO_SIZE_UPLOAD_T (int) Total number of bytes that were uploaded. Available as of PHP 7.3.0 and cURL 7.50.0
CURLINFO_SPEED_DOWNLOAD (int) Average download speed
CURLINFO_SPEED_DOWNLOAD_T (int) The average download speed in bytes/second that curl measured for the complete download. Available as of PHP 7.3.0 and cURL 7.50.0
CURLINFO_SPEED_UPLOAD (int) Average upload speed
CURLINFO_SPEED_UPLOAD_T (int) The average upload speed in bytes/second that curl measured for the complete upload. Available as of PHP 7.3.0 and cURL 7.50.0
CURLINFO_SSL_ENGINES (int) OpenSSL crypto-engines supported
CURLINFO_SSL_VERIFYRESULT (int) Result of SSL certification verification requested by setting CURLOPT_SSL_VERIFYPEER
CURLINFO_STARTTRANSFER_TIME (int) Time in seconds until the first byte is about to be transferred
CURLINFO_STARTTRANSFER_TIME_T (int) Time, in microseconds, it took from the start until the first byte is received. Available as of PHP 7.3.0 and cURL 7.61.0
CURLINFO_TOTAL_TIME (int) Total transaction time in seconds for last transfer
CURLINFO_TOTAL_TIME_T (int) Total time in microseconds for the previous transfer, including name resolving, TCP connect etc. Available as of PHP 7.3.0 and cURL 7.61.0
curl_multi_setopt()
Constants Description
CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE (int) Specifies the chunk length threshold for pipelining in bytes. Available as of PHP 7.0.7 and cURL 7.30.0
CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE (int) Specifies the size threshold for pipelining penalty in bytes. Available as of PHP 7.0.7 and cURL 7.30.0
CURLMOPT_MAXCONNECTS (int) Specifies the maximum amount of simultaneously open connections that libcurl may cache. By default the size will be enlarged to fit four times the number of handles added via curl_multi_add_handle(). When the cache is full, curl closes the oldest one in the cache to prevent the number of open connections from increasing. Available as of cURL 7.16.3.
CURLMOPT_MAX_CONCURRENT_STREAMS (int) Specifies the maximum number of concurrent streams for connections that cURL should support on connections using HTTP/2. Valid values range from 1 to 2147483647 (2^31 - 1). The value passed here would be honored based on other system resources properties. Default is 100. Available as of PHP 8.2.0 and cURL 7.67.0.
CURLMOPT_MAX_HOST_CONNECTIONS (int) Specifies the maximum number of connections to a single host. Available as of PHP 7.0.7 and cURL 7.30.0
CURLMOPT_MAX_PIPELINE_LENGTH (int) Specifies the maximum number of requests in a pipeline. Available as of PHP 7.0.7 and cURL 7.30.0
CURLMOPT_MAX_TOTAL_CONNECTIONS (int) Specifies the maximum number of simultaneously open connections. Available as of PHP 7.0.7 and cURL 7.30.0
CURLMOPT_PIPELINING (int) Pass 1 to enable or 0 to disable. Enabling pipelining on a multi handle will make it attempt to perform HTTP Pipelining as far as possible for transfers using this handle. This means that adding a second request that can use an already existing connection will "pipe" the second request on the same connection. As of cURL 7.43.0, the value is a bitmask, and passing 2 will try to multiplex the new transfer over an existing HTTP/2 connection. Passing 3 instructs cURL to ask for pipelining and multiplexing independently of each other. As of cURL 7.62.0, setting the pipelining bit has no effect. Instead of integer literals, the CURLPIPE_* constants can also be used. Available as of cURL 7.16.0.
CURLMOPT_PUSHFUNCTION (int)

Pass a callable that will be registered to handle server pushes and should have the following signature:

pushfunction(resource $parent_ch, resource $pushed_ch, array $headers): int
parent_ch
The parent cURL handle (the request the client made).
pushed_ch
A new cURL handle for the pushed request.
headers
The push promise headers.
The push function is supposed to return either CURL_PUSH_OK if it can handle the push, or CURL_PUSH_DENY to reject it. Available as of PHP 7.1.0 and cURL 7.44.0

cURL protocol constants
Constants Description
CURLPROTO_ALL (int)
CURLPROTO_DICT (int)
CURLPROTO_FILE (int)
CURLPROTO_FTP (int)
CURLPROTO_FTPS (int)
CURLPROTO_GOPHER (int)
CURLPROTO_HTTP (int)
CURLPROTO_HTTPS (int)
CURLPROTO_IMAP (int)
CURLPROTO_IMAPS (int)
CURLPROTO_LDAP (int)
CURLPROTO_LDAPS (int)
CURLPROTO_MQTT (int) Available as of PHP 8.2.0 and cURL 7.71.0.
CURLPROTO_POP3 (int)
CURLPROTO_POP3S (int)
CURLPROTO_RTMP (int)
CURLPROTO_RTMPE (int)
CURLPROTO_RTMPS (int)
CURLPROTO_RTMPT (int)
CURLPROTO_RTMPTE (int)
CURLPROTO_RTMPTS (int)
CURLPROTO_RTSP (int)
CURLPROTO_SCP (int)
CURLPROTO_SFTP (int)
CURLPROTO_SMB (int) Available as of PHP 7.0.7 and cURL 7.40.0.
CURLPROTO_SMBS (int) Available as of PHP 7.0.7 and cURL 7.40.0.
CURLPROTO_SMTP (int)
CURLPROTO_SMTPS (int)
CURLPROTO_TELNET (int)
CURLPROTO_TFTP (int)
cURL error constants
Constants Description
CURLE_ABORTED_BY_CALLBACK (int) Aborted by callback. A callback returned "abort" to libcurl.
CURLE_BAD_CALLING_ORDER (int)
CURLE_BAD_CONTENT_ENCODING (int) Unrecognized transfer encoding.
CURLE_BAD_DOWNLOAD_RESUME (int) The download could not be resumed because the specified offset was out of the file boundary.
CURLE_BAD_FUNCTION_ARGUMENT (int) A function was called with a bad parameter.
CURLE_BAD_PASSWORD_ENTERED (int)
CURLE_COULDNT_CONNECT (int) Failed to connect to host or proxy.
CURLE_COULDNT_RESOLVE_HOST (int) Could not resolve host. The given remote host was not resolved.
CURLE_COULDNT_RESOLVE_PROXY (int) Could not resolve proxy. The given proxy host could not be resolved.
CURLE_FAILED_INIT (int) Early initialization code failed. This is likely to be an internal error or problem, or a resource problem where something fundamental could not get done at init time.
CURLE_FILESIZE_EXCEEDED (int) Maximum file size exceeded.
CURLE_FILE_COULDNT_READ_FILE (int) A file given with FILE:// could not be opened. Most likely because the file path does not identify an existing file or due to the lack of appropriate file permissions.
CURLE_FTP_ACCESS_DENIED (int)
CURLE_FTP_BAD_DOWNLOAD_RESUME (int)
CURLE_FTP_CANT_GET_HOST (int) An internal failure to lookup the host used for the new connection.
CURLE_FTP_CANT_RECONNECT (int)
CURLE_FTP_COULDNT_GET_SIZE (int)
CURLE_FTP_COULDNT_RETR_FILE (int) This was either a unexpected reply to a 'RETR' command or a zero byte transfer complete.
CURLE_FTP_COULDNT_SET_ASCII (int)
CURLE_FTP_COULDNT_SET_BINARY (int)
CURLE_FTP_COULDNT_STOR_FILE (int)
CURLE_FTP_COULDNT_USE_REST (int) The FTP REST command returned error. This should never happen if the server is sane.
CURLE_FTP_PARTIAL_FILE (int)
CURLE_FTP_PORT_FAILED (int) The FTP PORT command returned error. This mostly happens when a good enough address has not been specified for libcurl to use. See CURLOPT_FTPPORT.
CURLE_FTP_QUOTE_ERROR (int)
CURLE_FTP_SSL_FAILED (int)
CURLE_FTP_USER_PASSWORD_INCORRECT (int)
CURLE_FTP_WEIRD_227_FORMAT (int) FTP servers return a 227-line as a response to a PASV command. If libcurl fails to parse that line, this return code is passed back.
CURLE_FTP_WEIRD_PASS_REPLY (int) After having sent the FTP password to the server, libcurl expects a proper reply. This error code indicates that an unexpected code was returned.
CURLE_FTP_WEIRD_PASV_REPLY (int) libcurl failed to get a sensible result back from the server as a response to either a PASV or a EPSV command. The server is flawed.
CURLE_FTP_WEIRD_SERVER_REPLY (int) The server sent data libcurl could not parse. This error code is known as CURLE_WEIRD_SERVER_REPLY as of cURL 7.51.0.
CURLE_FTP_WEIRD_USER_REPLY (int)
CURLE_FTP_WRITE_ERROR (int)
CURLE_FUNCTION_NOT_FOUND (int) Function not found. A required zlib function was not found.
CURLE_GOT_NOTHING (int) Nothing was returned from the server, and under the circumstances, getting nothing is considered an error.
CURLE_HTTP_NOT_FOUND (int)
CURLE_HTTP_PORT_FAILED (int)
CURLE_HTTP_POST_ERROR (int) This is an odd error that mainly occurs due to internal confusion.
CURLE_HTTP_RANGE_ERROR (int)
CURLE_HTTP_RETURNED_ERROR (int) This is returned if CURLOPT_FAILONERROR is set true and the HTTP server returns an error code that is greater than or equal to 400.
CURLE_LDAP_CANNOT_BIND (int) LDAP cannot bind. LDAP bind operation failed.
CURLE_LDAP_INVALID_URL (int)
CURLE_LDAP_SEARCH_FAILED (int) LDAP search failed.
CURLE_LIBRARY_NOT_FOUND (int)
CURLE_MALFORMAT_USER (int)
CURLE_OBSOLETE (int)
CURLE_OK (int) All fine. Proceed as usual.
CURLE_OPERATION_TIMEDOUT (int) Operation timeout. The specified time-out period was reached according to the conditions.
CURLE_OPERATION_TIMEOUTED (int)
CURLE_OUT_OF_MEMORY (int) A memory allocation request failed.
CURLE_PARTIAL_FILE (int) A file transfer was shorter or larger than expected. This happens when the server first reports an expected transfer size, and then delivers data that does not match the previously given size.
CURLE_PROXY (int) Proxy handshake error. CURLINFO_PROXY_ERROR provides extra details on the specific problem. Available as of PHP 8.2.0 and cURL 7.73.0
CURLE_READ_ERROR (int) There was a problem reading a local file or an error returned by the read callback.
CURLE_RECV_ERROR (int) Failure with receiving network data.
CURLE_SEND_ERROR (int) Failed sending network data.
CURLE_SHARE_IN_USE (int)
CURLE_SSH (int) An unspecified error occurred during the SSH session. Available as of cURL 7.16.1.
CURLE_SSL_CACERT (int)
CURLE_SSL_CACERT_BADFILE (int) Problem with reading the SSL CA cert.
CURLE_SSL_CERTPROBLEM (int) Problem with the local client certificate.
CURLE_SSL_CIPHER (int) Could not use specified cipher.
CURLE_SSL_CONNECT_ERROR (int) A problem occurred somewhere in the SSL/TLS handshake. Reading the message in the error buffer provides more details on the problem. Could be certificates (file formats, paths, permissions), passwords, and others.
CURLE_SSL_ENGINE_NOTFOUND (int) The specified crypto engine was not found.
CURLE_SSL_ENGINE_SETFAILED (int) Failed setting the selected SSL crypto engine as default.
CURLE_SSL_PEER_CERTIFICATE (int)
CURLE_SSL_PINNEDPUBKEYNOTMATCH (int) Failed to match the pinned key specified with CURLOPT_PINNEDPUBLICKEY.
CURLE_TELNET_OPTION_SYNTAX (int)
CURLE_TOO_MANY_REDIRECTS (int) Too many redirects. When following redirects, libcurl hit the maximum amount. The limit can be set with CURLOPT_MAXREDIRS.
CURLE_UNKNOWN_TELNET_OPTION (int)
CURLE_UNSUPPORTED_PROTOCOL (int) The URL passed to libcurl used a protocol that libcurl does not support. The issue might be a compile-time option that was not used, a misspelled protocol string or just a protocol libcurl has no code for.
CURLE_URL_MALFORMAT (int) The URL was not properly formatted.
CURLE_URL_MALFORMAT_USER (int)
CURLE_WEIRD_SERVER_REPLY (int) The server sent data libcurl could not parse. This error code was known as CURLE_FTP_WEIRD_SERVER_REPLY before cURL 7.51.0. Available as of PHP 7.3.0 and cURL 7.51.0
CURLE_WRITE_ERROR (int) An error occurred when writing received data to a local file, or an error was returned to libcurl from a write callback.
curl_multi_* status constants
Constants Description
CURLM_ADDED_ALREADY (int) An easy handle already added to a multi handle was attempted to get added a second time. Available as of cURL 7.32.1
CURLM_BAD_EASY_HANDLE (int) An easy handle was not good/valid. It could mean that it is not an easy handle at all, or possibly that the handle already is in use by this or another multi handle.
CURLM_BAD_HANDLE (int) The passed-in handle is not a valid multi handle.
CURLM_CALL_MULTI_PERFORM (int) As of cURL 7.20.0, this constant is not used. Before cURL 7.20.0, this status could be returned by curl_multi_exec() when curl_multi_select() or a similar function was called before it returned any other constant.
CURLM_INTERNAL_ERROR (int) Internal libcurl error.
CURLM_OK (int) No errors.
CURLM_OUT_OF_MEMORY (int) Ran out of memory while processing multi handles.
curl_pause()
Constants Description
CURLPAUSE_ALL (int) Pause sending and receiving data. Available as of cURL 7.18.0.
CURLPAUSE_CONT (int) Unpause sending and receiving data. Available as of cURL 7.18.0.
CURLPAUSE_RECV (int) Pause receiving data. Available as of cURL 7.18.0.
CURLPAUSE_RECV_CONT (int) Unpause receiving data. Available as of cURL 7.18.0.
CURLPAUSE_SEND (int) Pause sending data. Available as of cURL 7.18.0.
CURLPAUSE_SEND_CONT (int) Unpause sending data. Available as of cURL 7.18.0.
add a note

User Contributed Notes 5 notes

up
29
nimasdj [AT] yahoo [DOT] com
8 years ago
I hope this would be useful to convert error codes:

<?php
$curl_errno
= array(
1 => "CURLE_UNSUPPORTED_PROTOCOL",
2 => "CURLE_FAILED_INIT",
3 => "CURLE_URL_MALFORMAT",
4 => "CURLE_URL_MALFORMAT_USER",
5 => "CURLE_COULDNT_RESOLVE_PROXY",
6 => "CURLE_COULDNT_RESOLVE_HOST",
7 => "CURLE_COULDNT_CONNECT",
8 => "CURLE_FTP_WEIRD_SERVER_REPLY",
9 => "CURLE_FTP_ACCESS_DENIED",
10 => "CURLE_FTP_USER_PASSWORD_INCORRECT",
11 => "CURLE_FTP_WEIRD_PASS_REPLY",
12 => "CURLE_FTP_WEIRD_USER_REPLY",
13 => "CURLE_FTP_WEIRD_PASV_REPLY",
14 => "CURLE_FTP_WEIRD_227_FORMAT",
15 => "CURLE_FTP_CANT_GET_HOST",
16 => "CURLE_FTP_CANT_RECONNECT",
17 => "CURLE_FTP_COULDNT_SET_BINARY",
18 => "CURLE_FTP_PARTIAL_FILE or CURLE_PARTIAL_FILE",
19 => "CURLE_FTP_COULDNT_RETR_FILE",
20 => "CURLE_FTP_WRITE_ERROR",
21 => "CURLE_FTP_QUOTE_ERROR",
22 => "CURLE_HTTP_NOT_FOUND or CURLE_HTTP_RETURNED_ERROR",
23 => "CURLE_WRITE_ERROR",
24 => "CURLE_MALFORMAT_USER",
25 => "CURLE_FTP_COULDNT_STOR_FILE",
26 => "CURLE_READ_ERROR",
27 => "CURLE_OUT_OF_MEMORY",
28 => "CURLE_OPERATION_TIMEDOUT or CURLE_OPERATION_TIMEOUTED",
29 => "CURLE_FTP_COULDNT_SET_ASCII",
30 => "CURLE_FTP_PORT_FAILED",
31 => "CURLE_FTP_COULDNT_USE_REST",
32 => "CURLE_FTP_COULDNT_GET_SIZE",
33 => "CURLE_HTTP_RANGE_ERROR",
34 => "CURLE_HTTP_POST_ERROR",
35 => "CURLE_SSL_CONNECT_ERROR",
36 => "CURLE_BAD_DOWNLOAD_RESUME or CURLE_FTP_BAD_DOWNLOAD_RESUME",
37 => "CURLE_FILE_COULDNT_READ_FILE",
38 => "CURLE_LDAP_CANNOT_BIND",
39 => "CURLE_LDAP_SEARCH_FAILED",
40 => "CURLE_LIBRARY_NOT_FOUND",
41 => "CURLE_FUNCTION_NOT_FOUND",
42 => "CURLE_ABORTED_BY_CALLBACK",
43 => "CURLE_BAD_FUNCTION_ARGUMENT",
44 => "CURLE_BAD_CALLING_ORDER",
45 => "CURLE_HTTP_PORT_FAILED",
46 => "CURLE_BAD_PASSWORD_ENTERED",
47 => "CURLE_TOO_MANY_REDIRECTS",
48 => "CURLE_UNKNOWN_TELNET_OPTION",
49 => "CURLE_TELNET_OPTION_SYNTAX",
50 => "CURLE_OBSOLETE",
51 => "CURLE_SSL_PEER_CERTIFICATE",
52 => "CURLE_GOT_NOTHING",
53 => "CURLE_SSL_ENGINE_NOTFOUND",
54 => "CURLE_SSL_ENGINE_SETFAILED",
55 => "CURLE_SEND_ERROR",
56 => "CURLE_RECV_ERROR",
57 => "CURLE_SHARE_IN_USE",
58 => "CURLE_SSL_CERTPROBLEM",
59 => "CURLE_SSL_CIPHER",
60 => "CURLE_SSL_CACERT",
61 => "CURLE_BAD_CONTENT_ENCODING",
62 => "CURLE_LDAP_INVALID_URL",
63 => "CURLE_FILESIZE_EXCEEDED",
64 => "CURLE_FTP_SSL_FAILED",
79 => "CURLE_SSH"
);
?>
up
9
uramihsayibok, gmail, com
8 years ago
Regarding CURLE_OPERATION_TIMEDOUT vs. CURLE_OPERATION_TIMEOUTED:

Originally cURL had the constant named TIMEOUTED (read: "timeout-ed"). This was changed[1] in 2007 and v7.17.0 to be TIMEDOUT (read: "timed out") and the old constant kept in place as an alias.

PHP started off using TIMEOUTED as well. The TIMEDOUT constant was added[2] in 2012 and v5.5.0 and the old constant was *kept in place*.

If you ask me, the TIMEDOUT constant reads more nicely (not to mention is technically the correct one to use) and as long as you're using PHP 5.5+ then it is available. If you have to support older versions then I suggest you keep using the new constant and add a polyfill like

<?php
if (version_compare(PHP_VERSION, "5.5.0", "<")) {
define("CURLE_OPERATION_TIMEDOUT", CURLE_OPERATION_TIMEOUTED);
}
?>

or

<?php
// PHP <5.5.0
defined("CURLE_OPERATION_TIMEDOUT") || define("CURLE_OPERATION_TIMEDOUT", CURLE_OPERATION_TIMEOUTED);
?>

to be removed once you stop supporting them.

[1] https://github.com/bagder/curl/commit/9f44a95522162c0f4a61093efe1bf1f58b087358#diff-d8c6cb80505e0f7d5e27fca2a682aa34L119
[2] https://github.com/php/php-src/commit/9ab45d3edbafa3ee751472c3f8d1fb3f51f38cf1#diff-ac978e3de205f1d14eb960e0eb15ef24R723
up
17
s dot coletta at unidata dot it
14 years ago
Beware of CURLE_* constants!

On the official site:

http://curl.haxx.se/libcurl/c/libcurl-errors.html

some constants are different, some missing compared to the PHP implementation.

Some examples:

in PHP the curl error number 28 is called

CURLE_OPERATION_TIMEOUTED

while in the official site is:

CURLE_OPERATION_TIMEDOUT

So if you use the second, it won't march the error 28 because in PHP it is not defined that way.

The same is for these:

CURLE_HTTP_RETURNED_ERROR
CURLE_UPLOAD_FAILED
CURLE_INTERFACE_FAILED
CURLE_SSL_CERTPROBLEM
CURLE_SEND_FAIL_REWIND
CURLE_LOGIN_DENIED
CURLE_AGAIN

that are in someway named differently or missing from PHP.
up
7
Ron
16 years ago
<?
/*
* Author: Ron
* Released: August 4, 2007
* Description: An example of the disguise_curl() function in order to grab contents from a website while remaining fully camouflaged by using a fake user agent and fake headers.
*/

$url = 'http://www.ericgiguere.com/tools/http-header-viewer.html';

// disguises the curl using fake headers and a fake user agent.
function disguise_curl($url)
{
$curl = curl_init();

// Setup headers - I used the same headers from Firefox version 2.0.0.6
// below was split up because php.net said the line was too long. :/
$header[0] = "Accept: text/xml,application/xml,application/xhtml+xml,";
$header[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
$header[] = "Cache-Control: max-age=0";
$header[] = "Connection: keep-alive";
$header[] = "Keep-Alive: 300";
$header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
$header[] = "Accept-Language: en-us,en;q=0.5";
$header[] = "Pragma: "; // browsers keep this blank.

curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_USERAGENT, 'Googlebot/2.1 (+http://www.google.com/bot.html)');
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_REFERER, 'http://www.google.com');
curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');
curl_setopt($curl, CURLOPT_AUTOREFERER, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);

$html = curl_exec($curl); // execute the curl command
curl_close($curl); // close the connection

return $html; // and finally, return $html
}

// uses the function and displays the text off the website
$text = disguise_curl($url);
echo $text;
?>

~Ron
up
0
jrschlosser
6 years ago
In PHP version 7.1.11 there is also constants for HTTP/2 :
CURL_VERSION_HTTP2 = 65536 (1 << 16)
CURL_HTTP_VERSION_2_0 = 3

I don't know the first version of PHP that defines it.
To Top