php curl lib 中,设置一个Cookie文件 $cookeFilePath
在初始化以后和执行访问页面以前调用:
curl_setopt($c, CURLOPT_COOKIEFILE, $cookieFilePath);
curl_setopt($c, CURLOPT_COOKIEJAR, $cookieFilePath);
最好使用前清除文件:
@unlink($cookieFilePath);
一段用cookie模拟登录的,应该是你想要的
curl的封装程序见这个问题@求PHP实现POST请求{103}
//获取页面的cookie
$http =newHttpRequest;
$http->url ='目标网站的页面';
$response =$http->get();
$header =$response->headers;
//真正的请求开始
$http->url ='访问地址';
if(isset($header['Set-Cookie'])&&is_array($header['Set-Cookie'])){
$http->cookies =$header['Set-Cookie'];
}
$response =$http->get();
$body =$response->body;
使用curl获取COOKIE
$ch =curl_init('http://www.xxx.com/');
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_HEADER,1);
preg_match('/^Set-Cookie: (.*?);/m',curl_exec($ch),$m);
var_dump(parse_url($m[1]));
curl带COOKIE的请求
curl_setopt($DATA_POST,CURLOPT_COOKIEFILE,'cookiefile.txt'); //CURLOPT_COOKIEFILE: 传递一个包含cookie数据的文件的名字的字符串。这个cookie文件可以是Netscape格式,或是堆存在文件中的HTTP风格的头。
curl_setopt($DATA_POST,CURLOPT_COOKIEJAR,'cookiefile.txt'); //CURLOPT_COOKIEJAR:把返回来的cookie信息保存在$cookie_jar文件中
curl_setopt($ch, CURLOPT_COOKIE, $cookie); //CURLOPT_COOKIE: 传递一个包含HTTP cookie的头连接(header 信息)。