2012-03-16 77 views
2

我正在使用CURL從網頁api獲取響應。我得到的反應卻是字符串格式是這樣的:從捲曲響應中獲得價值

HTTP/1.1 302已暫時移動日期:星期五,2012年3月16日12時57分16秒GMT 服務器:GlassFish的/ v3的X-技術,通過: Servlet/2.5位置: http://demo.tdsarena.com/tds/內容類型:text/html; charset = iso-8859-1 Content-Length:0 Set-Cookie: JSESSIONID = b869884w3w3r3r76dbd1a2bfd5d;路徑=/TDS有所不同: 接受編碼連接:關閉

我用下面的代碼:

$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL, 'http://demo.tdsarena.com/tds/j_security_check'); 
curl_setopt($ch, CURLOPT_POST, true); 

curl_setopt($ch, CURLOPT_POSTFIELDS, "j_username=XXX&j_password=XXX"); 

curl_setopt($ch, CURLOPT_HEADER, true); 



curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

$result = curl_exec($ch); 
curl_close($ch); 

echo $result; 

我想曲奇 「JSESSIONID」。但我怎麼能得到這個。我已經嘗試使用$ _COOKIE變量。

任何人都可以幫助我PLZ。提前致謝。

+0

但我使用POST方法通過使用CURLOPT_POST在捲曲 – Chirayu 2012-03-16 13:19:47

+0

的$ _COOKIE變量設置爲true錯誤的地方看。這將包含調用PHP腳本時傳遞的cookie,而不是調用curl_exec時傳遞的cookie。 – qbert220 2012-03-16 13:21:07

回答

3

你可以解析$result值,並使用這樣的提取cookie值:

if (preg_match('/Set-Cookie: JSESSIONID=(.*?);/', $result, $matches)) 
{ 
    $cookieVal = $matches[1]; 
    echo $cookieVal; 
}