使用curl基本上分为4步
1. 初始化 curl_init();
2. 设置变量 curl_setopt();
3. 执行并获取结果 curl_close()
4. 释放cURL句柄 curl_close()
curl常用配置
- CURLOPT_HEADER:
启用时会将头文件的信息作为数据流输出。 - CURLOPT_FOLLOWLOCATION TRUE:
时将会根据服务器返回 HTTP 头中的 “Location: ” 重定向。 - CURLOPT_REFERER :
在HTTP请求头中”Referer: “的内容。既由哪个网址跳转到要访问的网址 - CURLOPT_RETURNTRANSFER :
TRUE 将curl_exec()获取的信息以字符串返回,而不是直接输出。 - CURLOPT_USERAGENT:
在HTTP请求中包含一个”User-Agent: “头的字符串。如:User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36 - CURLOPT_COOKIEFILE:
包含 cookie 数据的文件名,调用已存储的cookie - CURLOPT_COOKIEJAR :
连接结束后,将cookie保存到这里定义的文件中,如 curl_setopt( $ch, CURLOPT_COOKIEJAR, 'cookie.txt');
- CURLOPT_TIMEOUT
允许 cURL 函数执行的最长秒数。 - CURLOPT_URL
需要获取的 URL 地址,也可以在curl_init() 初始化会话的时候。 - CURLOPT_POST
TRUE 时会发送 POST 请求,类型为:application/x-www-form-urlencoded,是 HTML 表单提交时最常见的一种。 - CURLOPT_POSTFIELDS
需要发送的数据,调用形式如:curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($arr));
其中$arr为关联数组,键值对分别对应url中的键值对 - CURLOPT_AUTOREFERER
TRUE 时将根据 Location: 重定向时,自动设置 header 中的Referer:信息。 - CURLOPT_HTTPPROXYTUNNEL
TRUE 会通过指定的 HTTP 代理来传输。 - CURLOPT_PROXYTYPE
可以是 CURLPROXY_HTTP (默认值) CURLPROXY_SOCKS4、 CURLPROXY_SOCKS5、 CURLPROXY_SOCKS4A 或 CURLPROXY_SOCKS5_HOSTNAME。 - CURLOPT_PROXY
HTTP 代理通道。例如:curl_setopt($curl, CURLOPT_PROXY, "fuck.3322.org:1080");
- CURLOPT_SSL_VERIFYPEER
当访问https开头的网站时,将此值设为false将不会验证该网站的证书 - CURLOPT_SSL_VERIFYHOST
设为0表示不检查证书,设置为 1 是检查服务器SSL证书中是否存在一个公用名,设为2表示在1的基础上校验当前的域名是否与CN匹配