curl_setopt

(PHP 4 >= 4.0.2, PHP 5, PHP 7)

curl_setopt���� cURL ����ѡ��

˵��

curl_setopt ( resource $ch , int $option , mixed $value ) : bool

Ϊ cURL �Ự�������ѡ�

����

ch

�� curl_init() ���ص� cURL �����

option

��Ҫ���õ�CURLOPT_XXXѡ�

value

��������optionѡ���ϵ�ֵ��

���� option ������ valueӦ�ñ����ó� bool ���ͣ�

ѡ�� �� value ����Ϊ ��ע
CURLOPT_AUTOREFERER TRUE ʱ������ Location: �ض���ʱ���Զ����� header �е�Referer:��Ϣ��
CURLOPT_BINARYTRANSFER ��Ϊ TRUE ���������� CURLOPT_RETURNTRANSFER ʱ������ԭ���ģ�Raw������� �� PHP 5.1.3 ��ʼ����ѡ�����Ч����ʹ�� CURLOPT_RETURNTRANSFER �����ǻ᷵��ԭ���ģ�Raw�����ݡ�
CURLOPT_COOKIESESSION ��Ϊ TRUE ʱ�������µ�һ�� cookie �Ự������ǿ�� libcurl ����֮ǰ�Ựʱ������� cookie�� libcurl ��Ĭ��״���������Ƿ�Ϊ�Ự�����ᴢ�桢�������� cookie���Ự cookie ��ָû�й���ʱ�䣬ֻ����ڻỰ֮�С�
CURLOPT_CERTINFO TRUE ���ڰ�ȫ����ʱ��� SSL ֤����Ϣ�� STDERR�� �� cURL 7.19.1 ����ӡ� PHP 5.3.2 ����Ч�� ��Ҫ���� CURLOPT_VERBOSE ����Ч��
CURLOPT_CONNECT_ONLY TRUE ���ÿ�ִ��������Ҫ�Ĵ�����֤�����ӹ��̣������������ݡ���ѡ������ HTTP��SMTP �� POP3�� �� 7.15.2 ����ӡ� PHP 5.5.0 ����Ч��
CURLOPT_CRLF ����ʱ��Unix�Ļ��з�ת���ɻس����з���
CURLOPT_DNS_USE_GLOBAL_CACHE TRUE ������һ��ȫ�ֵ�DNS���档��ѡ����̰߳�ȫ�ģ�Ĭ���ѿ�����
CURLOPT_FAILONERROR �� HTTP ״̬����ڵ��� 400��TRUE ������ʾ�������顣 Ĭ������½�����ҳ�棬���� HTTP ���롣
CURLOPT_SSL_FALSESTART TRUE ���� TLS False Start ��һ�� TLS �����Ż���ʽ�� cURL 7.42.0 ����ӡ��� PHP 7.0.7 ����Ч��
CURLOPT_FILETIME TRUE ʱ���᳢�Ի�ȡԶ���ĵ��е��޸�ʱ����Ϣ�� ��Ϣ��ͨ��curl_getinfo()������CURLINFO_FILETIME ѡ���ȡ��
CURLOPT_FOLLOWLOCATION TRUE ʱ������ݷ��������� HTTP ͷ�е� "Location: " �ض��򡣣�ע�⣺���ǵݹ�ģ�"Location: " ���ͼ��ξ��ض��򼸴Σ����������� CURLOPT_MAXREDIRS����������ض������������
CURLOPT_FORBID_REUSE TRUE ����ɽ����Ժ�ǿ����ȷ�ĶϿ����ӣ����������ӳ������á�
CURLOPT_FRESH_CONNECT TRUE ǿ�ƻ�ȡһ���µ����ӣ������ǻ����е����ӡ�
CURLOPT_FTP_USE_EPRT TRUE ʱ���� FTP ����ʱ��ʹ�� EPRT (�� LPRT)��� ����Ϊ FALSE ʱ���� EPRT �� LPRT������ʹ��PORT ���
CURLOPT_FTP_USE_EPSV TRUE ʱ����FTP��������У��ص� PASV ģʽǰ���ȳ��� EPSV �������Ϊ FALSE ʱ���� EPSV��
CURLOPT_FTP_CREATE_MISSING_DIRS TRUE ʱ���� ftp ���������ڵ�Ŀ¼ʱ����������
CURLOPT_FTPAPPEND TRUE Ϊ׷��д���ļ��������Ǹ��ǡ�
CURLOPT_TCP_NODELAY TRUE ʱ���� TCP �� Nagle �㷨�����Ǽ��������ϵ�С�������� PHP 5.2.1 ��Ч������ʱ��Ҫ libcurl 7.11.2 �����ϡ�
CURLOPT_FTPASCII CURLOPT_TRANSFERTEXT �ı�����
CURLOPT_FTPLISTONLY TRUE ʱֻ�г� FTP Ŀ¼�����֡�
CURLOPT_HEADER ����ʱ�Ὣͷ�ļ�����Ϣ��Ϊ�����������
CURLINFO_HEADER_OUT TRUE ʱ׷�پ���������ַ����� �� PHP 5.1.3 ��ʼ���á�CURLINFO_ ��ǰ׺�������(intentional)��
CURLOPT_HTTPGET TRUE ʱ������ HTTP �� method Ϊ GET������Ĭ���� GET������ֻ�� method ���޸�ʱ����Ҫ���ѡ�
CURLOPT_HTTPPROXYTUNNEL TRUE ��ͨ��ָ���� HTTP ���������䡣
CURLOPT_MUTE TRUE ʱ����ȫ��Ĭ�������Ǻ� cURL ������ �� cURL 7.15.5 ���Ƴ�������ʹ�� CURLOPT_RETURNTRANSFER ��Ϊ���棩
CURLOPT_NETRC TRUE ʱ�������ӽ���ʱ������~/.netrc�ļ���ȡ�û���������������Զ��վ�㡣
CURLOPT_NOBODY TRUE ʱ������� BODY ���֡�ͬʱ Mehtod ����� HEAD���޸�Ϊ FALSE ʱ������ GET��
CURLOPT_NOPROGRESS

TRUE ʱ�ر� cURL �Ĵ�����ȡ�

Note:

PHP Ĭ���Զ����ô�ѡ��Ϊ TRUE��ֻ��Ϊ�˵��Բ���Ҫ�ı����á�

CURLOPT_NOSIGNAL TRUE ʱ�������е� cURL ���ݸ� PHP ���е��źš��� SAPI ���̴߳���ʱ���Ĭ�����ã����Գ�ʱѡ������ʹ�á� cURL 7.10ʱ�����롣
CURLOPT_PATH_AS_IS TRUE ������ dot dot sequences ���� ../ �� cURL 7.42.0 ʱ�����롣 PHP 7.0.7 ����Ч��
CURLOPT_PIPEWAIT TRUE ��ȴ� pipelining/multiplexing�� cURL 7.43.0 ʱ�����롣 PHP 7.0.7 ����Ч��
CURLOPT_POST TRUE ʱ�ᷢ�� POST ��������Ϊ��application/x-www-form-urlencoded���� HTML ���ύʱ�����һ�֡�
CURLOPT_PUT TRUE ʱ���� HTTP �����ļ���Ҫ�� PUT ���ļ������� CURLOPT_INFILE��CURLOPT_INFILESIZE �����á�
CURLOPT_RETURNTRANSFER TRUE ��curl_exec()��ȡ����Ϣ���ַ������أ�������ֱ�������
CURLOPT_SAFE_UPLOAD TRUE ���� @ ǰ׺�� CURLOPT_POSTFIELDS �з����ļ��� ��ζ�� @ �������ֶ��а�ȫ��ʹ���ˡ� ��ʹ�� CURLFile ��Ϊ�ϴ��Ĵ��档 PHP 5.5.0 ����ӣ�Ĭ��ֵ FALSE�� PHP 5.6.0 ��Ĭ��ֵΪ TRUE��. PHP 7 ɾ���˴�ѡ� ����ʹ�� CURLFile interface ���ϴ��ļ���
CURLOPT_SASL_IR TRUE �������յ��װ�(first packet)���ͳ�ʼ����Ӧ(initial response)�� cURL 7.31.10 ����ӣ��� PHP 7.0.7 ����Ч��
CURLOPT_SSL_ENABLE_ALPN FALSE ���� SSL �����е� ALPN (��� SSL ��˵� libcurl �ڽ�֧��) ����Э�̵� http2�� cURL 7.36.0 �����ӣ� PHP 7.0.7 ����Ч��
CURLOPT_SSL_ENABLE_NPN FALSE ���� SSL �����е� NPN(��� SSL ��˵� libcurl �ڽ�֧��)������Э�̵� http2�� cURL 7.36.0 �����ӣ� PHP 7.0.7 ����Ч��
CURLOPT_SSL_VERIFYPEER FALSE ��ֹ cURL ��֤�Ե�֤�飨peer's certificate����Ҫ��֤�Ľ���֤������� CURLOPT_CAINFO ѡ�������ã����� CURLOPT_CAPATH������֤��Ŀ¼�� ��cURL 7.10��ʼĬ��Ϊ TRUE���� cURL 7.10��ʼĬ�ϰ󶨰�װ��
CURLOPT_SSL_VERIFYSTATUS TRUE ��֤֤��״̬�� cURL 7.41.0 ����ӣ� PHP 7.0.7 ����Ч��
CURLOPT_TCP_FASTOPEN TRUE ���� TCP Fast Open�� cURL 7.49.0 ����ӣ� PHP 7.0.7 ����Ч��
CURLOPT_TFTP_NO_OPTIONS TRUE ������ TFTP �� options ���� �� cURL 7.48.0 ��ӣ� PHP 7.0.7 ����Ч��
CURLOPT_TRANSFERTEXT TRUE �� FTP ����ʹ�� ASCII ģʽ������LDAP�����������ı���Ϣ���� HTML���� Windows ϵͳ�ϣ�ϵͳ����� STDOUT ���óɶ����� ģʽ��
CURLOPT_UNRESTRICTED_AUTH TRUE ��ʹ��CURLOPT_FOLLOWLOCATION�ض��� header �еĶ�� location ʱ���������û�����������Ϣ�������������Ѹı䡣
CURLOPT_UPLOAD TRUE ׼���ϴ���
CURLOPT_VERBOSE TRUE ��������е���Ϣ��д�뵽STDERR������CURLOPT_STDERR��ָ�����ļ���

���� option��valueӦ�ñ����ó� integer��

ѡ�� ����valueΪ ��ע
CURLOPT_BUFFERSIZE ÿ�ζ���Ļ���ijߴ硣��Ȼ����֤ÿ�ζ�����ȫ��������ߴ硣 ��cURL 7.10�б����롣
CURLOPT_CLOSEPOLICY CURLCLOSEPOLICY_* �е�һ����

Note:

��ѡ���ѱ������������ᱻʵ�֣���Զ������Ч������

PHP 5.6.0 ���Ƴ���
CURLOPT_CONNECTTIMEOUT �ڳ�������ʱ�ȴ�������������Ϊ0�������޵ȴ���
CURLOPT_CONNECTTIMEOUT_MS �������ӵȴ���ʱ�䣬�Ժ���Ϊ��λ������Ϊ0�������޵ȴ��� ��� libcurl ����ʱʹ��ϵͳ��׼�����ƽ������� standard system name resolver�����Dz��ֵ������Ծ�ʹ������Ƶij�ʱ�����������С��ʱʱ�仹��һ���ӡ� �� cURL 7.16.2 �б����롣�� PHP 5.2.3 ��ʼ���á�
CURLOPT_DNS_CACHE_TIMEOUT �������ڴ��л��� DNS ��ʱ�䣬Ĭ��Ϊ120�루�����ӣ���
CURLOPT_EXPECT_100_TIMEOUT_MS ��ʱԤ�ƣ� 100�����ڵ� continue ��Ӧ Ĭ��Ϊ 1000 ���롣 cURL 7.36.0 ����ӣ��� PHP 7.0.7 ��Ч��
CURLOPT_FTPSSLAUTH FTP��֤��ʽ�����õ�ʱ�򣩣�CURLFTPAUTH_SSL (���ȳ���SSL)��CURLFTPAUTH_TLS (���ȳ���TLS)��CURLFTPAUTH_DEFAULT (��cURL �Ը�������)�� �� cURL 7.12.2 �б����롣
CURLOPT_HEADEROPT How to deal with headers. One of the following constants: CURLHEADER_UNIFIED: the headers specified in CURLOPT_HTTPHEADER will be used in requests both to servers and proxies. With this option enabled, CURLOPT_PROXYHEADER will not have any effect. CURLHEADER_SEPARATE: makes CURLOPT_HTTPHEADER headers only get sent to a server and not to a proxy. Proxy headers must be set with CURLOPT_PROXYHEADER to get used. Note that if a non-CONNECT request is sent to a proxy, libcurl will send both server headers and proxy headers. When doing CONNECT, libcurl will send CURLOPT_PROXYHEADER headers only to the proxy and then CURLOPT_HTTPHEADER headers only to the server. Defaults to CURLHEADER_SEPARATE as of cURL 7.42.1, and CURLHEADER_UNIFIED before. Added in cURL 7.37.0. Available since PHP 7.0.7.
CURLOPT_HTTP_VERSION CURL_HTTP_VERSION_NONE (Ĭ��ֵ���� cURL �Լ��ж�ʹ���ĸ��汾)��CURL_HTTP_VERSION_1_0 (ǿ��ʹ�� HTTP/1.0)��CURL_HTTP_VERSION_1_1 (ǿ��ʹ�� HTTP/1.1)��
CURLOPT_HTTPAUTH

ʹ�õ� HTTP ��֤������ѡ���У� CURLAUTH_BASIC�� CURLAUTH_DIGEST�� CURLAUTH_GSSNEGOTIATE�� CURLAUTH_NTLM�� CURLAUTH_ANY�� CURLAUTH_ANYSAFE��

����ʹ�� | λ��(OR)��������϶��ֵ��cURL ���÷�����ѡ����֧�ֵķ�������ѡ����õ��Ǹ���

CURLAUTH_ANY�� CURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM �ı�����

CURLAUTH_ANYSAFE �� CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM �ı�����

CURLOPT_INFILESIZE ϣ������Զ��վ����ļ��ߴ磬�ֽ�(byte)Ϊ��λ�� ע���޷������ѡ����ֹ libcurl ���͸�������ݣ�ȷ�з���ʲôȡ���� CURLOPT_READFUNCTION��
CURLOPT_LOW_SPEED_LIMIT �����ٶȣ�ÿ���ֽڣ�bytes����������CURLOPT_LOW_SPEED_TIME����ͳ���Ƿ���̫����ȡ�����䡣
CURLOPT_LOW_SPEED_TIME �������ٶ�С��CURLOPT_LOW_SPEED_LIMITʱ(bytes/sec)��PHP���ж��Ƿ���̫����ȡ�����䡣
CURLOPT_MAXCONNECTS �������������������ﵽ����ʱ����ͨ��CURLOPT_CLOSEPOLICY����Ӧ�ùر���Щ���ӡ�
CURLOPT_MAXREDIRS ָ������ HTTP �ض�����������ѡ���Ǻ�CURLOPT_FOLLOWLOCATIONһ��ʹ�õġ�
CURLOPT_PORT ����ָ�����Ӷ˿ڡ�
CURLOPT_POSTREDIR λ���룬 1 (301 �����ض���), 2 (302 Found) �� 4 (303 See Other) ���� CURLOPT_FOLLOWLOCATION ʱ��ʲô�������Ҫ�ٴ� HTTP POST ���ض�����ַ�� cURL 7.19.1 ����ӣ�PHP 5.3.2 ��ʼ���á�
CURLOPT_PROTOCOLS

CURLPROTO_*��λ���롣 ����ʱ�������� libcurl �ڴ�������п�ʹ����ЩЭ�顣 �⽫�������ڱ���libcurlʱ֧���ڶ�Э�飬��������ֻ��������Ӽ���Ĭ�� libcurl ��ʹ������֧�ֵ�Э�顣 �μ�CURLOPT_REDIR_PROTOCOLS��

���õ�Э��ѡ��Ϊ�� CURLPROTO_HTTP�� CURLPROTO_HTTPS�� CURLPROTO_FTP�� CURLPROTO_FTPS�� CURLPROTO_SCP�� CURLPROTO_SFTP�� CURLPROTO_TELNET�� CURLPROTO_LDAP�� CURLPROTO_LDAPS�� CURLPROTO_DICT�� CURLPROTO_FILE�� CURLPROTO_TFTP�� CURLPROTO_ALL��

�� cURL 7.19.4 �б����롣
CURLOPT_PROXYAUTH HTTP �������ӵ���֤��ʽ��ʹ����CURLOPT_HTTPAUTH�е�λ���롣 ��ǰ����֧�� CURLAUTH_BASIC��CURLAUTH_NTLM�� �� cURL 7.10.7 �б����롣
CURLOPT_PROXYPORT ����������Ķ˿ڡ��˿�Ҳ������CURLOPT_PROXY�����á�
CURLOPT_PROXYTYPE ������ CURLPROXY_HTTP (Ĭ��ֵ) CURLPROXY_SOCKS4�� CURLPROXY_SOCKS5�� CURLPROXY_SOCKS4A �� CURLPROXY_SOCKS5_HOSTNAME�� �� cURL 7.10 �б����롣
CURLOPT_REDIR_PROTOCOLS CURLPROTO_* ֵ��λ���롣��������ã�λ��������� libcurl �� CURLOPT_FOLLOWLOCATION����ʱ��ʹ�õ�Э�顣 Ĭ������� FILE �� SCP ������Э�顣 ��� 7.19.4 ǰ�İ汾������֧������֧�ֵ�Э�鲻ͬ������Э�鳣���������CURLOPT_PROTOCOLS�� �� cURL 7.19.4 �б����롣
CURLOPT_RESUME_FROM �ڻָ�����ʱ�������ֽ�Ϊ��λ��ƫ�����������ϵ���������
CURLOPT_SSL_OPTIONS Set SSL behavior options, which is a bitmask of any of the following constants: CURLSSLOPT_ALLOW_BEAST: do not attempt to use any workarounds for a security flaw in the SSL3 and TLS1.0 protocols. CURLSSLOPT_NO_REVOKE: disable certificate revocation checks for those SSL backends where such behavior is present. Added in cURL 7.25.0. Available since PHP 7.0.7.
CURLOPT_SSL_VERIFYHOST ����Ϊ 1 �Ǽ�������SSL֤�����Ƿ����һ��������(common name)������ע��������(Common Name)һ������������д�㽫Ҫ����SSL֤������� (domain)��������(sub domain)�� ���ó� 2�����鹫�����Ƿ���ڣ������Ƿ����ṩ��������ƥ�䡣 0 Ϊ��������ơ� �����������У����ֵӦ���� 2��Ĭ��ֵ���� ֵ 1 ��֧���� cURL 7.28.1 �б�ɾ���ˡ�
CURLOPT_SSLVERSION CURL_SSLVERSION_DEFAULT (0), CURL_SSLVERSION_TLSv1 (1), CURL_SSLVERSION_SSLv2 (2), CURL_SSLVERSION_SSLv3 (3), CURL_SSLVERSION_TLSv1_0 (4), CURL_SSLVERSION_TLSv1_1 (5) �� CURL_SSLVERSION_TLSv1_2 (6) �е�����һ����

Note:

����ñ��������ֵ������ʹ��Ĭ��ֵ�� ����Ϊ 2 �� 3 �Ƚ�Σ�գ��� SSLv2 �� SSLv3 ����������ڡ�

CURLOPT_STREAM_WEIGHT ���� stream weight ��ֵ ( 1 �� 256 ֮�������). cURL 7.46.0 ����ӣ��� PHP 7.0.7 ����Ч��
CURLOPT_TIMECONDITION ������ζԴ� CURLOPT_TIMEVALUE�� ʹ�� CURL_TIMECOND_IFMODSINCE������ҳ�� CURLOPT_TIMEVALUE ֮���޸ģ��ŷ���ҳ�档û���޸��򷵻� "304 Not Modified" ͷ������������ CURLOPT_HEADER Ϊ TRUE��CURL_TIMECOND_IFUNMODSINCE�����෴��Ч���� Ĭ��Ϊ CURL_TIMECOND_IFMODSINCE��
CURLOPT_TIMEOUT ���� cURL ����ִ�е��������
CURLOPT_TIMEOUT_MS ����cURL����ִ�е���������� ��� libcurl ����ʱʹ��ϵͳ��׼�����ƽ������� standard system name resolver�����Dz��ֵ������Ծ�ʹ������Ƶij�ʱ�����������С��ʱʱ�仹��һ���ӡ� �� cURL 7.16.2 �б����롣�� PHP 5.2.3 ���ʹ�á�
CURLOPT_TIMEVALUE �������� 1970��1��1�տ�ʼ�����ʱ��ᱻ CURLOPT_TIMECONDITIONʹ��Ĭ��ʹ��CURL_TIMECOND_IFMODSINCE��
CURLOPT_MAX_RECV_SPEED_LARGE ��������ٶȳ����˴��ٶ�(��ÿ���ֽ�����ͳ��) ��������������ۼƵ�ƽ����������ͻή�ٵ����������ֵ��Ĭ�ϲ����١� cURL 7.15.5 ����ӣ� PHP 5.4.0 ��Ч��
CURLOPT_MAX_SEND_SPEED_LARGE ����ϴ����ٶȳ����˴��ٶ�(��ÿ���ֽ�����ͳ��)��������������ۼƵ�ƽ���� ������ͻή�ٵ����������ֵ��Ĭ�ϲ����١� cURL 7.15.5 ����ӣ� PHP 5.4.0 ��Ч��
CURLOPT_SSH_AUTH_TYPES A bitmask consisting of one or more of CURLSSH_AUTH_PUBLICKEY, CURLSSH_AUTH_PASSWORD, CURLSSH_AUTH_HOST, CURLSSH_AUTH_KEYBOARD. Set to CURLSSH_AUTH_ANY to let libcurl pick one. cURL 7.16.1 ����ӡ�
CURLOPT_IPRESOLVE �������ѡ����Ҫ������ IP ��ַ���ֻ���ڵ�ַ�ж��� ip ����ʱ������ã����Ե�ֵ�У� CURL_IPRESOLVE_WHATEVER�� CURL_IPRESOLVE_V4�� CURL_IPRESOLVE_V6��Ĭ���� CURL_IPRESOLVE_WHATEVER�� cURL 7.10.8 ����ӡ�
CURLOPT_FTP_FILEMETHOD ���� curl ʹ�����ַ�ʽ����ȡ FTP(s) �������ϵ��ļ������ܵ�ֵ�У� CURLFTPMETHOD_MULTICWD�� CURLFTPMETHOD_NOCWD �� CURLFTPMETHOD_SINGLECWD�� cURL 7.15.1 ����ӣ� PHP 5.3.0 ����Ч��

�����������Щoption��valueӦ�ñ����ó� string��

ѡ�� ���õ�value ��ע
CURLOPT_CAINFO һ��������1�����������÷������֤��֤����ļ�����������������ں�CURLOPT_SSL_VERIFYPEERһ��ʹ��ʱ�������塣 . ������Ҫ����·����
CURLOPT_CAPATH һ�������Ŷ��CA֤���Ŀ¼�����ѡ���Ǻ�CURLOPT_SSL_VERIFYPEERһ��ʹ�õġ�
CURLOPT_COOKIE �趨 HTTP ������"Cookie: "���ֵ����ݡ���� cookie �÷ֺŷָ����ֺź��һ���ո�(���磬 "fruit=apple; colour=red")��
CURLOPT_COOKIEFILE ���� cookie ���ݵ��ļ�����cookie �ļ��ĸ�ʽ������ Netscape ��ʽ������ֻ�Ǵ� HTTP ͷ����񣬴����ļ�������ļ����ǿյģ�������� cookie���� cookie �Ĵ����Ծ����á�
CURLOPT_COOKIEJAR ���ӽ����󣬱��磬���� curl_close �󣬱��� cookie ��Ϣ���ļ���
CURLOPT_CUSTOMREQUEST

HTTP ����ʱ��ʹ���Զ���� Method ������"GET"��"HEAD"���� "DELETE" �������������ε� HTTP �������á� ��Чֵ�� "GET"��"POST"��"CONNECT"�ȵȣ�Ҳ����˵����Ҫ�������������� HTTP ������������"GET /index.html HTTP/1.0\r\n\r\n"�Dz���ȷ�ġ�

Note:

��ȷ��������֧������Զ��巽����Ҫʹ������

CURLOPT_DEFAULT_PROTOCOL

URL����Э���ʱ��ʹ�õ�Ĭ��Э�顣

cURL 7.45.0 ����ӣ��� PHP 7.0.7 ����Ч��
CURLOPT_DNS_INTERFACE

Set the name of the network interface that the DNS resolver should bind to. This must be an interface name (not an address).

Added in cURL 7.33.0. Available since PHP 7.0.7.
CURLOPT_DNS_LOCAL_IP4

Set the local IPv4 address that the resolver should bind to. The argument should contain a single numerical IPv4 address as a string.

Added in cURL 7.33.0. Available since PHP 7.0.7.
CURLOPT_DNS_LOCAL_IP6

Set the local IPv6 address that the resolver should bind to. The argument should contain a single numerical IPv6 address as a string.

Added in cURL 7.33.0. Available since PHP 7.0.7.
CURLOPT_EGDSOCKET ����CURLOPT_RANDOM_FILE������һ��Entropy Gathering Daemon�׽��֡�
CURLOPT_ENCODING HTTP����ͷ��"Accept-Encoding: "��ֵ�� ��ʹ���ܹ�������Ӧ�����ݡ� ֧�ֵı�����"identity"��"deflate"��"gzip"�����Ϊ���ַ���""���ᷢ������֧�ֵı������͡� �� cURL 7.10 �б����롣
CURLOPT_FTPPORT ���ֵ����������ȡ��FTP"PORT"ָ������Ҫ��IP��ַ�� "PORT" ָ�����Զ�̷��������ӵ�����ָ����IP��ַ������ַ��������Ǵ��ı���IP��ַ����������һ������ӿ�����UNIX�£�����ֻ��һ��'-'��ʹ��Ĭ�ϵ� IP ��ַ��
CURLOPT_INTERFACE ���͵�����ӿڣ�interface����������һ���ӿ�����IP ��ַ������һ����������
CURLOPT_KEYPASSWD ʹ�� CURLOPT_SSLKEY �� CURLOPT_SSH_PRIVATE_KEYFILE ˽Կʱ������롣 �� cURL 7.16.1 ����ӡ�
CURLOPT_KRB4LEVEL KRB4 (Kerberos 4) ��ȫ����������κ�ֵ������Ч��(�ӵ͵��ߵ�˳��)��"clear"��"safe"��"confidential"��"private".������ַ���������Щ����ʹ��"private"�� ���ѡ������Ϊ NULL ʱ������ KRB4 ��ȫ��֤��Ŀǰ KRB4 ��ȫ��ֻ֤������ FTP ���䡣
CURLOPT_LOGIN_OPTIONS Can be used to set protocol specific login options, such as the preferred authentication mechanism via "AUTH=NTLM" or "AUTH=*", and should be used in conjunction with the CURLOPT_USERNAME option. Added in cURL 7.34.0. Available since PHP 7.0.7.
CURLOPT_PINNEDPUBLICKEY Set the pinned public key. The string can be the file name of your pinned public key. The file format expected is "PEM" or "DER". The string can also be any number of base64 encoded sha256 hashes preceded by "sha256//" and separated by ";". Added in cURL 7.39.0. Available since PHP 7.0.7.
CURLOPT_POSTFIELDS ȫ������ʹ��HTTPЭ���е� "POST" ���������͡� Ҫ�����ļ������ļ���ǰ�����@ǰ׺��ʹ������·���� �ļ����Ϳ����ļ������� ';type=mimetype' �ĸ�ʽָ���� ������������� urlencoded ����ַ���������'para1=val1&para2=val2&...'��Ҳ����ʹ��һ�����ֶ���Ϊ��ֵ���ֶ�����Ϊֵ�����顣 ���value��һ�����飬Content-Typeͷ���ᱻ���ó�multipart/form-data�� �� PHP 5.2.0 ��ʼ��ʹ�� @ ǰ׺�����ļ�ʱ��value �����Ǹ����顣 �� PHP 5.5.0 ��ʼ, @ ǰ׺�ѱ��������ļ���ͨ�� CURLFile ���͡� ���� CURLOPT_SAFE_UPLOAD Ϊ TRUE �ɽ��� @ ǰ׺�����ļ��������Ӱ�ȫ�ԡ�
CURLOPT_PRIVATE Any data that should be associated with this cURL handle. This data can subsequently be retrieved with the CURLINFO_PRIVATE option of curl_getinfo(). cURL does nothing with this data. When using a cURL multi handle, this private data is typically a unique key to identify a standard cURL handle. Added in cURL 7.10.3.
CURLOPT_PROXY HTTP ����ͨ����
CURLOPT_PROXY_SERVICE_NAME ������֤��������ơ� cURL 7.34.0 ����ӣ�PHP 7.0.7 ����Ч��
CURLOPT_PROXYUSERPWD һ���������ӵ������"[username]:[password]"��ʽ���ַ�����
CURLOPT_RANDOM_FILE һ������������ SSL ��������ӵ��ļ�����
CURLOPT_RANGE ��"X-Y"����ʽ������X��Y���ǿ�ѡ���ȡ���ݵķ�Χ�����ֽڼơ�HTTP�����߳�Ҳ֧�ּ����������ظ����м��ö��ŷָ���"X-Y,N-M"��
CURLOPT_REFERER ��HTTP����ͷ��"Referer: "�����ݡ�
CURLOPT_SERVICE_NAME ��֤��������� cURL 7.43.0 ����ӣ��� PHP 7.0.7 ��Ч��
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 ���� 32 λ���� 16 ������ֵ������ַ���Ӧ����Զ��������Կ��public key�� �� MD5 У��ֵ���ڲ�ƥ���ʱ�� libcurl ��ܾ����ӡ� ��ѡ������� SCP �� SFTP �Ĵ��䡣 cURL 7.17.1 ����ӡ�
CURLOPT_SSH_PUBLIC_KEYFILE The file name for your public key. If not used, libcurl defaults to $HOME/.ssh/id_dsa.pub if the HOME environment variable is set, and just "id_dsa.pub" in the current directory if HOME is not set. Added in cURL 7.16.1.
CURLOPT_SSH_PRIVATE_KEYFILE The file name for your private key. If not used, libcurl defaults to $HOME/.ssh/id_dsa if the HOME environment variable is set, and just "id_dsa" in the current directory if HOME is not set. If the file is password-protected, set the password with CURLOPT_KEYPASSWD. Added in cURL 7.16.1.
CURLOPT_SSL_CIPHER_LIST һ��SSL�ļ����㷨�б�����RC4-SHA��TLSv1���ǿ��õļ����б�
CURLOPT_SSLCERT һ������ PEM ��ʽ֤����ļ�����
CURLOPT_SSLCERTPASSWD ʹ��CURLOPT_SSLCERT֤����Ҫ�����롣
CURLOPT_SSLCERTTYPE ֤������͡�֧�ֵĸ�ʽ��"PEM" (Ĭ��ֵ), "DER"��"ENG"�� �� cURL 7.9.3�� �����롣
CURLOPT_SSLENGINE ������CURLOPT_SSLKEY��ָ����SSL˽Կ�ļ������������
CURLOPT_SSLENGINE_DEFAULT �������ǶԳƼ��ܲ����ı�����
CURLOPT_SSLKEY ���� SSL ˽Կ���ļ�����
CURLOPT_SSLKEYPASSWD

�� CURLOPT_SSLKEY��ָ���˵�SSL˽Կ�����롣

Note:

�������ѡ����������е�������Ϣ���ǵñ�֤���PHP�ű��İ�ȫ��

CURLOPT_SSLKEYTYPE CURLOPT_SSLKEY�й涨��˽Կ�ļ������ͣ�֧�ֵ���Կ����Ϊ"PEM"(Ĭ��ֵ)��"DER"��"ENG"��
CURLOPT_UNIX_SOCKET_PATH ʹ�� Unix �׽�����Ϊ���ӣ�����ָ���� string ��Ϊ·���� cURL 7.40.0 ����ӣ� PHP 7.0.7 ����Ч��
CURLOPT_URL ��Ҫ��ȡ�� URL ��ַ��Ҳ������curl_init() ��ʼ���Ự��ʱ��
CURLOPT_USERAGENT ��HTTP�����а���һ��"User-Agent: "ͷ���ַ�����
CURLOPT_USERNAME ��֤��ʹ�õ��û����� cURL 7.19.1 ����ӣ�PHP 5.5.0 ����Ч��
CURLOPT_USERPWD ����һ����������Ҫ���û��������룬��ʽΪ��"[username]:[password]"��
CURLOPT_XOAUTH2_BEARER ָ�� OAuth 2.0 access token�� cURL 7.33.0 ����ӣ��� PHP 7.0.7 ��ӡ�

����option��valueӦ�ñ����ó����飺

ѡ�� ��ѡvalueֵ ��ע
CURLOPT_CONNECT_TO ���ӵ�ָ���������Ͷ˿ڣ��滻 URL �е������Ͷ˿ڡ�����ָ���ַ�����ʽ�����飺 HOST:PORT:CONNECT-TO-HOST:CONNECT-TO-PORT�� cURL 7.49.0 ����ӣ� PHP 7.0.7 ����Ч��
CURLOPT_HTTP200ALIASES HTTP 200 ��Ӧ�����飬�����е���Ӧ�뱻��Ϊ����ȷ����Ӧ�����Ǵ��� �� cURL 7.10.3 �б����롣
CURLOPT_HTTPHEADER ���� HTTP ͷ�ֶε����顣��ʽ�� array('Content-type: text/plain', 'Content-length: 100')
CURLOPT_POSTQUOTE �� FTP ����ִ����ɺ��ڷ�������ִ�е�һ��array��ʽ�� FTP ���
CURLOPT_PROXYHEADER ����������Զ��� HTTP ͷ�� cURL 7.37.0 ����ӣ��� PHP 7.0.7 ��ӡ�
CURLOPT_QUOTE һ������ FTP ������ڷ�������ִ�е�FTP���
CURLOPT_RESOLVE �ṩ�Զ����ַ��ָ���������Ͷ˿ڡ� �����������˿ں� ip ��ַ���ַ�������� array �ģ�ÿ��Ԫ����ð�ŷָ�����ʽ�� array("example.com:80:127.0.0.1") �� cURL 7.21.3 ����ӣ��� PHP 5.5.0 ����á�

���� option��valueӦ�ñ����ó�����Դ ������ʹ��fopen()����

ѡ�� ��ѡvalueֵ
CURLOPT_FILE ��������ļ���Ĭ��ΪSTDOUT (�����)��
CURLOPT_INFILE �ϴ��ļ�ʱ��Ҫ��ȡ���ļ���
CURLOPT_STDERR ��������ĵ�ַ��ȡ��Ĭ�ϵ�STDERR��
CURLOPT_WRITEHEADER ���� header �������ݵ�д����ļ���ַ��

����option �� valueӦ������Ч�ĺ������߱հ���

ѡ�� valueֵ
CURLOPT_HEADERFUNCTION ����һ���ص����������������������������һ����cURL����Դ������ڶ���������� header ���ݡ�header���ݵ���������������������������д������ݴ�С��
CURLOPT_PASSWDFUNCTION ����һ���ص���������������������һ����cURL����Դ������ڶ�����һ��������ʾ�������������������볤����������ֵ�����������ֵ��
CURLOPT_PROGRESSFUNCTION

����һ���ص��������������������һ����cURL����Դ������ڶ�����Ԥ��Ҫ���ص����ֽڣ�bytes��������������Ŀǰ���ص��ֽ��������ĸ���Ԥ�ƴ��������ϴ��ֽ������������Ŀǰ�ϴ����ֽ�����

Note:

ֻ������ CURLOPT_NOPROGRESS ѡ��Ϊ FALSE ʱ�Ż��������ص�������

���ط���ֵ���жϴ��䡣 ���佫���� CURLE_ABORTED_BY_CALLBACK ����

CURLOPT_READFUNCTION �ص����������ú���Ӧ����������������һ���� cURL resource���ڶ�����ͨ��ѡ�� CURLOPT_INFILE ���� cURL �� stream resource�������������������Զ�ȡ�����ݵ��������� ���������뷵��һ���ַ���������С�ڻ�������������������������������һ��Ӵ���� stream resource ��ȡ�����ؿ��ַ�����Ϊ EOF���ļ������� �źš�
CURLOPT_WRITEFUNCTION �ص����������ú���Ӧ����������������һ���� cURL resource���ڶ�����Ҫд��������ַ������� �ݱ����ں����б����档 ��������׼ȷ����д�����ݵ��ֽ�����������ᱻһ���������� �ϡ�

����ֵ��

Option ���� value Ϊ
CURLOPT_SHARE curl_share_init() ���صĽ���� ʹ cURL ���Դ�������������ݡ�

����ֵ

�ɹ�ʱ���� TRUE�� ������ʧ��ʱ���� FALSE��

������־

�汾 ˵��
7.0.7 ���� CURL_HTTP_VERSION_2�� CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE�� CURL_HTTP_VERSION_2TLS�� CURL_REDIR_POST_301�� CURL_REDIR_POST_302�� CURL_REDIR_POST_303�� CURL_REDIR_POST_ALL�� CURL_VERSION_KERBEROS5�� CURL_VERSION_PSL�� CURL_VERSION_UNIX_SOCKETS�� CURLAUTH_NEGOTIATE�� CURLAUTH_NTLM_WB�� CURLFTP_CREATE_DIR�� CURLFTP_CREATE_DIR_NONE�� CURLFTP_CREATE_DIR_RETRY�� CURLHEADER_SEPARATE�� CURLHEADER_UNIFIED�� CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE�� CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE�� CURLMOPT_MAX_HOST_CONNECTIONS�� CURLMOPT_MAX_PIPELINE_LENGTH�� CURLMOPT_MAX_TOTAL_CONNECTIONS�� CURLOPT_CONNECT_TO�� CURLOPT_DEFAULT_PROTOCOL�� CURLOPT_DNS_INTERFACE�� CURLOPT_DNS_LOCAL_IP4�� CURLOPT_DNS_LOCAL_IP6�� CURLOPT_EXPECT_100_TIMEOUT_MS�� CURLOPT_HEADEROPT�� CURLOPT_LOGIN_OPTIONS�� CURLOPT_PATH_AS_IS�� CURLOPT_PINNEDPUBLICKEY�� CURLOPT_PIPEWAIT�� CURLOPT_PROXY_SERVICE_NAME�� CURLOPT_PROXYHEADER�� CURLOPT_SASL_IR�� CURLOPT_SERVICE_NAME�� CURLOPT_SSL_ENABLE_ALPN�� CURLOPT_SSL_ENABLE_NPN�� CURLOPT_SSL_FALSESTART�� CURLOPT_SSL_VERIFYSTATUS�� CURLOPT_STREAM_WEIGHT�� CURLOPT_TCP_FASTOPEN�� CURLOPT_TFTP_NO_OPTIONS�� CURLOPT_UNIX_SOCKET_PATH�� CURLOPT_XOAUTH2_BEARER�� CURLPROTO_SMB�� CURLPROTO_SMBS�� CURLPROXY_HTTP_1_0�� CURLSSH_AUTH_AGENT �� CURLSSLOPT_NO_REVOKE��
7.0.0 ���� CURLOPT_SAFE_UPLOAD ��ѡ���ѱ�ɾ���ˡ� ���е� curl �ļ����ϴ�������ʹ�� CURLFile��
5.6.0 Ĭ�� CURLOPT_SAFE_UPLOADΪ TRUE ��
5.6.0 �Ƴ� CURLOPT_CLOSEPOLICY����ص�ֵ��
5.5.0 ��� cURL ��Դ��Ϊ CURLOPT_PROGRESSFUNCTION �ص������ĵ�һ��������
5.5.0 ���� CURLOPT_SHARE��
5.3.0 ���� CURLOPT_PROGRESSFUNCTION��
5.2.10 ���� CURLOPT_PROTOCOLS, and CURLOPT_REDIR_PROTOCOLS.
5.2.4 ������ CURLOPT_PRIVATE��
5.1.0 ���� CURLOPT_AUTOREFERER, CURLOPT_BINARYTRANSFER, CURLOPT_FTPSSLAUTH, CURLOPT_PROXYAUTH, and CURLOPT_TIMECONDITION.
5.0.0 ���� CURLOPT_FTP_USE_EPRT, CURLOPT_NOSIGNAL, CURLOPT_UNRESTRICTED_AUTH, CURLOPT_BUFFERSIZE, CURLOPT_HTTPAUTH, CURLOPT_PROXYPORT, CURLOPT_PROXYTYPE, CURLOPT_SSLCERTTYPE, and CURLOPT_HTTP200ALIASES.

����

Example #1 ��ʼ��һ���µ�cURL�Ự����ȡһ����ҳ

<?php
// ����һ����cURL��Դ
$ch curl_init();

// ����URL����Ӧ��ѡ��
curl_setopt($chCURLOPT_URL"http://www.example.com/");
curl_setopt($chCURLOPT_HEADERfalse);

// ץȡURL���������ݸ������
curl_exec($ch);

//�ر�cURL��Դ�������ͷ�ϵͳ��Դ
curl_close($ch);
?>

Example #2 �ϴ��ļ� (PHP 5.5.0 �󱻷���)

<?php

/* http://localhost/upload.php:
print_r($_POST);
print_r($_FILES);
*/

$ch curl_init();

$data = array('name' => 'Foo''file' => '@/home/user/test.png');

curl_setopt($chCURLOPT_URL'http://localhost/upload.php');
curl_setopt($chCURLOPT_POST1);
curl_setopt($chCURLOPT_SAFE_UPLOADfalse); //  PHP 5.6.0 ����뿪��
curl_setopt($chCURLOPT_POSTFIELDS$data);

curl_exec($ch);
?>

�������̻������

Array
(
    [name] => Foo
)
Array
(
    [file] => Array
        (
            [name] => test.png
            [type] => image/png
            [tmp_name] => /tmp/phpcpjNeQ
            [error] => 0
            [size] => 279
        )

)

ע��

Note:

����һ�����鵽CURLOPT_POSTFIELDS��cURL������ݱ���� multipart/form-data����Ȼ����һ��URL-encoded�ַ���ʱ�����ݻᱻ����� application/x-www-form-urlencoded��

�μ�