【问题标题】:How do I save cookies from a response to a cURL request using php?如何使用 php 从对 cURL 请求的响应中保存 cookie?
【发布时间】: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 库有问题。

标签: php curl


【解决方案1】:

感谢大家的帮助。然而,问题完全是另外一回事。我可能应该提到我正在使用 Windows 服务器并且 cURL 无法读取到 cookie.txt 的路径。

使用:

curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookie.txt');

代替:

curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');

解决了问题。

【讨论】:

    【解决方案2】:

    使用 cookie jar 文件的绝对路径,这样您就可以确定它的保存位置,从而知道您有正确的写入权限。

    curl 将它知道的所有 cookie 存储到文件中,包括所谓的会话 cookie(没有过期时间)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-09
      • 2019-01-23
      • 2014-10-27
      • 1970-01-01
      • 2019-04-25
      • 2015-08-25
      相关资源
      最近更新 更多