【发布时间】:2011-10-27 15:03:52
【问题描述】:
我通过 php 使用 curl 来获取 url。我能够成功下载页面、标题和所有内容。但是,任何页面返回的 cookie 都不会保存到指定的文件中。我已经检查了权限等,似乎没有什么不寻常的。我开始认为我的代码有问题。
$get_cookie_page = 'http://www.google.ca';
echo curl_download($get_cookie_page);
function curl_download($Url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $Url);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
$http_headers = array(
'Host: www.google.ca',
'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.2) Gecko/20100101 Firefox/6.0.2',
'Accept: */*',
'Accept-Language: en-us,en;q=0.5',
'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7',
'Connection: keep-alive'
);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $http_headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$output = curl_exec($ch);
curl_close($ch);
return $output;
}
任何帮助表示赞赏。
【问题讨论】:
-
您的代码看起来不错 - 您是否 1000% 确定有一些 cookie 可以保存?
-
Curl 不会将会话 cookie 写入文件,只有永久的。
-
@DaveRandom:是的,有cookies要保存。
-
@MarcB:我在一堆返回永久 cookie 的不同 uri 上进行了尝试。 Cookie 也不会保存在那里。
-
应该没关系,但尝试添加 CURLOPT_COOKIEFILE,指向同一个 cookie.txt。 JAR 是保存 cookie 的正确选择,但谁知道呢……也许你的 curl 库有问题。