从卷曲响应中获取价值

时间:2012-03-16 13:07:39

标签: php cookies curl response

我使用CURL从web api获取响应。我得到了回应,但它是字符串格式,如下所示:

  

HTTP / 1.1 302暂时移动日期:2012年3月16日星期五12:57:16 GMT   服务器:GlassFish / v3 X-Powered-By:Servlet / 2.5位置:   http://demo.tdsarena.com/tds/内容类型:text / html;   charset = iso-8859-1内容长度: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;

我想获得cookie“JSESSIONID”。但我怎么能得到这个。我尝试过$ _COOKIE变量。

是的,有人可以帮助我吗?提前谢谢。

1 个答案:

答案 0 :(得分:3)

您可以解析$result值并使用以下内容提取cookie值:

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