从Header请求中提取cookie值



在PHP中,我使用:$cookie = $conn->httpRequest->getHeader('Cookie')访问头cookie。这给了我一个长度为1的数组,其中包含一个字符串。字符串"描述"$conn(用户(的网站cookie。这是标题:

GET /sample_page.html HTTP/2.0
Host: www.example.org
Cookie: yummy_cookie=choco; tasty_cookie=strawberry

正如预期的那样,当我试图访问代码中的$cookie[0]值时,我得到了字符串:"yummy_cookie=choco; tasty_cookie=strawberry"

我想很容易地访问第一个cookie(由yummy_cookie索引(的值,但字符串的格式让它变得困难,因为我不能保证我总是想访问第一个cookie。有什么办法让它变得容易吗?

我使用Ratchet PHP Websocket,在websocket服务器中,我尝试访问特定用户的特定cookie值($conn(:

<?php
namespace dealspace_websocket;
use RatchetMessageComponentInterface;
use RatchetConnectionInterface;
class Chat implements MessageComponentInterface {
protected $clients;
public function __construct() {
//$this->clients = new SplObjectStorage;
$this->clients = [];
}
public function onOpen(ConnectionInterface $conn) {
$cookiesArray = $conn->httpRequest->getHeader('Cookie');
}
}

以下是我访问PHPSESSID索引的cookie的代码(也可以使用任何其他索引..(:

$cookiesArray = explode('; ', $from->httpRequest->getHeader('Cookie')[0]);
foreach($cookiesArray as $cookie):
if(strpos($cookie, "PHPSESSID=") == 0):
$sessid = explode('=', $cookie)[1];
break;
endif;
endforeach;

最新更新