2011-01-11 138 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