声明:本文是本人根据前人的文章总结而成,难免有些纰漏,欢迎指正和补充
>>> curl 常用参数
CURLOPT_AUTOREFERER: 当根据Location:重定向时,自动设置header中的Referer:信息。
CURLOPT_FAILONERROR: 显示HTTP状态码,默认行为是忽略编号小于等于400的HTTP信息。
CURLOPT_FOLLOWLOCATION: 返回给服务器,使用CURLOPT_MAXREDIRS可以限定递归返回的数量。
CURLOPT_MAXREDIRS: 指定最多的HTTP重定向的数量,这个选项是和CURLOPT_FOLLOWLOCATION一起使用的。
CURLOPT_HEADER: 启用时会将头文件的信息作为数据流输出。
CURLINFO_HEADER_OUT:启用时追踪句柄的请求字符串。
CURLOPT_MUTE:将cURL函数中所有修改过的参数恢复默认值。
CURLOPT_NOBODY:将不对HTML中的BODY部分进行输出。
CURLOPT_POST:发送一个常规的POST请求,类型为:application/x-www-form-urlencoded,就像表单提交的一样。
CURLOPT_RETURNTRANSFER:将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。
CURLOPT_VEROSE:会汇报所有的信息,存放在STDERR或指定的CURLOPT_STDERR中。
CURLOPT_CONNECTTIMEOUT:在发起连接前等待的时间,如果设置为0,则无限等待。
CURLOPT_CONNECTTIMEOUT_MS:尝试连接等待的时间,以毫秒为单位。如果设置为0,则无限等待。
CURLOPT_TIMEOUT:设置cURL允许执行的最长秒数。
CURLOPT_TIMEOUT_MS:设置cURL允许执行的最长毫秒数。
CURLOPT_PORT:用来指定连接端口。(可选项)
CURLOPT_COOKIE:设定HTTP请求中”Cookie: “部分的内容。多个cookie用分号分隔,分号后带一个空格
(例如, “fruit=apple; colour=red”)。
CURLOPT_COOKIEFILE:包含cookie数据的文件名,cookie文件的格式可以是Netscape格式,或者只是纯HTTP头部信息存入文件。
CURLOPT_COOKIEJAR:连接结束后保存cookie信息的文件。
CURLOPT_INTERFACE:网络发送接口名,可以是一个接口名、IP地址或者是一个主机名。
全部数据使用HTTP协议中的”POST”操作来发送。
要发送文件,在文件名前面加上@前缀并使用完整路径。这个参数可以通过urlencoded
CURLOPT_POSTFIELDS:字符串类似’para1=val1¶2=val2&…’或使用一个以字段名为键值,字段数据为值的数组。
如果value是一个数组,Content-Type头将会被设置成multipart/form-data。
CURLOPT_HTTPHEADER:一个用来设置HTTP头字段的数组。
使用如下的形式的数组进行设置: array(‘Content-type: text/plain’, ‘Content-length: 100′)
CURLOPT_FILE:设置输出文件的位置,值是一个资源类型,默认为STDOUT (浏览器)。
CURLOPT_INFILE:在上传文件的时候需要读取的文件地址,值是一个资源类型。
CURLOPT_STDERR: 设置一个错误输出地址,值是一个资源类型,取代默认的STDERR。
CURLOPT_WRITEHEADER:设置header部分内容的写入的文件地址,值是一个资源类型。
###应用:
1. get方式
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_URL, $url);
2. post方式
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_URL, $url);
3. https证书
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);
4. 服务器代理
curl_setopt($ch, CURLOPT_PROXY, $proxyIp);
5. http头
curl_setopt($ch, CURLOPT_HTTPHEADER, $arrHeader);
6. 打印执行信息
curl_setopt($ch, CURLOPT_VERBOSE, true);