簡體   English   中英

如何使用php從對cURL請求的響應中保存cookie?

[英]How do I save cookies from a response to a cURL request using php?

我通過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;
}

任何幫助贊賞。

感謝大家的幫助。 然而,問題完全是另一回事。 我可能應該提到我在Windows服務器上工作,而cURL無法讀取cookie.txt的路徑。

使用:

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

代替:

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

解決了這個問題。

使用cookie jar文件的絕對路徑,以便確定保存的位置,從而確保您擁有在該處寫入的正確權限。

curl將它知道的所有cookie存儲到文件中,包括所謂的會話cookie(沒有到期時間)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM