Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 读取HTTP响应头中的Set-Cookie指令_Php_Http_Cookies - Fatal编程技术网

Php 读取HTTP响应头中的Set-Cookie指令

Php 读取HTTP响应头中的Set-Cookie指令,php,http,cookies,Php,Http,Cookies,在PHP中是否有任何标准方法可以读取HTTP响应头中的Set Cookie指令,而无需手动解析 更具体地说,我想读取我正在使用的ASP.NET Web服务返回的ASP.NET_SessionIdcookie的值 编辑: 我正在使用PHP的原生SoapClient类使用Web服务。我可以使用\uu getLastResponseHeaders()方法检索Web服务返回的整个HTTP响应头: HTTP/1.1 200 OK Cache-Control: private, max-age=0 Con

在PHP中是否有任何标准方法可以读取HTTP响应头中的
Set Cookie
指令,而无需手动解析

更具体地说,我想读取我正在使用的ASP.NET Web服务返回的
ASP.NET_SessionId
cookie的值


编辑:

我正在使用PHP的原生
SoapClient
类使用Web服务。我可以使用
\uu 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\u SessionID
cookie的值:

ku501l55o300ik3sa2gu3vzj
当然,我不想手动操作。

试试这个:

$_COOKIE['ASP.NET_SessionId'];
或者这个:

$cookies = getCookies();
$sessionId = $cookies['ASP.NET_SessionId'];
不确定最后一部分是否能正常工作-如果不能,您可以尝试:

print_r($cookies);

查看它是否返回任何内容。

您可以使用以下命令查看通过soap客户端返回的cookies:

变量转储($client->\u cookies)


echo“cookie是”。$client->cookies[“ASP.NET_SessionId”][0]

不,它不起作用。Me认为,
$\u COOKIE
只包含从用户读取的COOKIE,而不包含由Web服务返回的COOKIE。@Eduardo León什么时候PHP不在服务器端?只要放置COOKIE时COOKIE域和路径设置正确,它就应该是可读的。@alex:PHP在用户看来是在服务器端的,但是从我使用的Web服务的角度来看,在客户端,SoapClient类中有一个getCookies()方法。因此,如果您可以调用该方法,您应该能够获取cookies。检查编辑后的答案。这很好。但是我在php文档中找不到任何东西。你在哪里找到的?