CURLOPT_SSL_VERIFYPEER
禁用后cURL将终止从服务端进行验证。使用
CURLOPT_CAINFO
选项设置证书使用
CURLOPT_CAPATH
选项设置证书目录
如果
CURLOPT_SSL_VERIFYPEER
(默认值为2)被启用,
CURLOPT_SSL_VERIFYHOST
需要被设置成
TRUE
否则设置为
FALSE
。
自cURL 7.10开始默认为
TRUE
。从cURL 7.10开始默认绑定安装。
CURLOPT_FTPSSLAUTH
FTP验证方式:
CURLFTPAUTH_SSL
(首先尝试SSL),
CURLFTPAUTH_TLS
(首先尝试TLS)或
CURLFTPAUTH_DEFAULT
(让cURL自动决定)。
在cURL 7.12.2中被加入。
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_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_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_REDIR_PROTOCOLS
CURLPROTO_*
中的位域值。如果被启用,位域值将会限制传输线程在
CURLOPT_FOLLOWLOCATION
开启时跟随某个重定向时可使用的协议。这将使你对重定向时限制传输线程使用被允许的协议子集默认libcurl将会允许除FILE和SCP之外的全部协议。这个和7.19.4预发布版本种无条件地跟随所有支持的协议有一些不同。关于协议常量,请参照
CURLOPT_PROTOCOLS
。
在cURL 7.19.4中被加入。
CURLOPT_CUSTOMREQUEST
使用一个自定义的请求信息来代替
"GET"
或
"HEAD"
作为HTTP请求。这对于执行
"DELETE"
或者其他更隐蔽的HTTP请求。有效值如
"GET"
,
"POST"
,
"CONNECT"
等等。也就是说,不要在这里输入整个HTTP请求。例如输入
"GET /index.html HTTP/1.0\r\n\r\n"
是不正确的。
Note
:
在确定服务器支持这个自定义请求的方法前不要使用。
CURLOPT_ENCODING
HTTP请求头中
"Accept-Encoding: "
的值。支持的编码有
"identity"
,
"deflate"
和
"gzip"
。如果为空字符串
""
,请求头会发送所有支持的编码类型。
在cURL 7.10中被加入。
回调函数名。该函数应接受三个参数。第一个是 cURL resource;第二个是通过选项
CURLOPT_INFILE
传给 cURL 的 stream resource;第三个参数是最大可以读取的数据的数量。回
调函数必须返回一个字符串,长度小于或等于请求的数据量(第三个参数)。一般从传入的 stream
resource 读取。返回空字符串作为
EOF
(文件结束) 信号。
回调函数名。该函数应接受两个参数。第一个是 cURL resource;第二个是要写入的数据字符串。数
据必须在函数中被保存。函数必须返回准确的传入的要写入数据的字节数,否则传输会被一个错误所中
// 设置URL和相应的选项
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, false);
// 抓取URL并把它传递给浏览器
curl_exec($ch);
//关闭cURL资源,并且释放系统资源
curl_close($ch);
上传文件实例:
/* http://localhost/upload.php:
print_r($_POST);
print_r($_FILES);
$ch = curl_init();
$data = array('name' => 'Foo', 'file' => '@/home/user/test.png');
curl_setopt($ch, CURLOPT_URL, 'http://localhost/upload.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_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
传递一个数组到CURLOPT_POSTFIELDS,cURL会把数据编码成 multipart/form-data,而然传递一个URL-encoded字符串时,数据会被编码成 application/x-www-form-urlencoded。
PHP cURL参考手册