如何使用php从对cURL请求的响应中保存cookie?

ˆᵛˆ*_*ˆᵛˆ 13 php curl

我通过PHP使用curl来获取网址.我成功地下载了页面,标题和所有内容.但是,任何页面返回的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;
}
Run Code Online (Sandbox Code Playgroud)

任何帮助赞赏.

ˆᵛˆ*_*ˆᵛˆ 26

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

使用:

curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookie.txt');
Run Code Online (Sandbox Code Playgroud)

代替:

curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
Run Code Online (Sandbox Code Playgroud)

解决了这个问题.