有关的CURLOPT_XXX
CURLOPT_COOKIESESSION:
value:bool
启用时cURL会仅仅传递一个session cookie,忽略其他的cookie,默认状况下cURL会将所有的cookie返回给服务端。session cookie是指那些用来判断服务器端的session师傅哦有效而存在的cookie。(有效为TRUE, 无效为FALSE)
CURLOPT_COOKIE:
value:String
设定HTTP请求中“Cookie:”部分的内容。多个cookie用分号分隔,分号后带一个空格(例如,“fruit=apple;colour=red”)。
CURLOPT_COOKIEFILE:
value:String
会使curl下一次发请求时从指定的文件中读取cookie。包含cookie数据的文件名,cookie文件的格式可以使Netscape格式,或者只是纯HTTP头部信息存入文件。设置对应的cookiefile路径,该路径文件并不一定需要在物理磁盘上实际存在。
CURLOPT_COOKIELIST:
会把指定的cookie字符串列表加入easy handle维护的cookie列表中。
CURLOPT_COOKIEJAR:
value:String
连接结束后保存cookie信息的文件。
CURLOPT_COOKIEFILE、CURLOPT_COOKIEJAR、CURLOPT_COOKIELIST这四个option都会打开curl的cookie引擎,使得curl在收到http response 时解析header field中的cookie。
CURLOPT_POST:
启用时会发送一个常规的POST请求,类型为application/x-www-form-urlencoded,就像表单提交的一样。
CURLOPT_POSTFIELDS:
全部数据使用HTTP洗衣中的“POST”操作来发送,要发送文件,在文件名前面加上@前缀并使用完整路径。这个参数可以通过urlencoded后的字符串,类似’para=nal1¶2=val2&…‘或使用一个以字段名为键值,字段数据为值得数组。如果value是一个数组,Content-Type头将会被设置成multipart/form-data。
example:
<?php
//登录验证获取登录cookie
function getCookie($id,$password){
$data = "Login.Token1=".$id;
$data = "Login.Token2=".$password;
$url = "...";//登录页面
$ch = curl_init();
$options = array(CURLOPT_URL => $url,
CURLOPT_HEADER => 0,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_COOKIEJAR => "",
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => $data);
curl_setopt_array($ch, $options);
curl_exec($ch);
if(curl_getinfo($ch, CURLINFO_HTTP_CODE) == 302)//302说明验证成功
return $ch;
return false;
}
?>
目前学习到的知识有限,获取登录cookie的方法之后再补充。
下面的链接是我学习中获取登入Cookie的一个例子。
http://blog.csdn.net/last_sharly/article/details/45031293