2012-05-13 31 views
16

我一直在尋找一種方式來指定CURL的cookie數據。我發現了一些關於如何從訪問頁面保存cookie的解決方案,但這不是我所需要的。我想要的是,自己寫入cookie的數據,所以CURL使用它。是否可以使用CURL設置Cookie內容?

回答

20

你真的應該read the documentation - 它的上市正好與你所期望的關鍵字,幷包含了很多有用的信息:

-b,--cookie

(HTTP)數據傳遞到HTTP服務器作爲一個cookie。據推測,這是以前在「Set-Cookie:」行中從服務器接收到的數據。 數據應採用格式「NAME1 = VALUE1; NAME2 = VALUE2」。

如果沒有「=」符號在線路中使用,它被當作一個文件名 使用讀取先前存儲的cookie線從,這應該在本會話中使用 它們是否匹配。使用此方法還會激活 「餅乾分析程序」,該餅乾程序也將捲曲記錄傳入的餅乾, 如果將此操作與-L, - 位置選項結合使用,可能會很方便。從中讀取cookie的文件的文件格式應該是普通的HTTP標頭或Netscape/Mozilla的cookie文件 格式。

請注意,使用-b,--cookie指定的文件僅用作輸入。 文件中不會存儲cookie。要存儲cookie,請使用-c, --cookie-jar選項,或者甚至可以使用-D,--dump-header將HTTP頭保存到文件中!

如果此選項設置了多次,最後一個將是使用的最後一個 。

+0

大答案+1 – gahooa

+0

感謝。似乎我不是唯一一個:) –

+0

工程就像一個魅力! – PierreF

2

cURL可以使用Netscape format中的cookie文件。只需自己創建一個這樣的文件並用作CURLOPT_COOKIEFILE選項。

22

您可以使用curl_etopt與CURLOPT_COOKIE常數:

<?php 
// create a new cURL resource 
$ch = curl_init(); 

// cookies to be sent 
curl_setopt($ch, CURLOPT_COOKIE, "fruit=apple; colour=red"); 

更多的PHP docs

相關問題