2011-01-11 95 views
1

PHP中是否有任何標準方法來讀取HTTP響應頭中的Set-Cookie指令,而無需手動解析它?在HTTP響應頭中讀取Set-Cookie指令

更具體地說,我想讀取我正在使用的ASP.NET Web服務返回的ASP.NET_SessionId Cookie的值。


編輯:

我消費使用PHP的原生SoapClient類的Web服務。我可以使用__getLastResponseHeaders()方法來檢索全由Web服務返回的HTTP響應標頭:

HTTP/1.1 200 OK 
Cache-Control: private, max-age=0 
Content-Type: text/xml; charset=utf-8 
Server: Microsoft-IIS/7.5 
Set-Cookie: ASP.NET_SessionId=ku501l55o300ik3sa2gu3vzj; path=/; HttpOnly 
X-AspNet-Version: 2.0.50727 
X-Powered-By: ASP.NET 
Date: Tue, 11 Jan 2011 23:34:02 GMT 
Content-Length: 368 

但我想提取ASP.NET_SessionID cookie的值:

ku501l55o300ik3sa2gu3vzj 

而且,中當然,我不想手動去做。

回答

1

您可以查看通過SOAP客戶端返回的餅乾用:

的var_dump($客戶 - > _餅乾);

echo「cookie is」。$ client - > _ cookies [「ASP.NET_SessionId」] [0];

2

試試這個:

$_COOKIE['ASP.NET_SessionId']; 

或者這樣:

$cookies = getCookies(); 
$sessionId = $cookies['ASP.NET_SessionId']; 

不知道,如果最後一部分將正常工作 - 如果沒有,你可以嘗試:

print_r($cookies); 

看看它是否甚至會返回任何東西。

+0

好的,讓我們來看看。 – pyon 2011-01-11 23:24:05

+0

不,它不起作用。我認爲`$ _COOKIE`只包含從用戶讀取的cookie,而不是由Web服務返回的cookie。 – pyon 2011-01-11 23:27:56