📅  最后修改于: 2023-12-03 14:51:45.092000             🧑  作者: Mango
在 PHP 中,我们可以使用 $_COOKIE
超全局变量来获取 cookie 中的值。但如果我们只有 cookie 字符串而没有设置过 cookie,我们该如何获取会话变量呢?
我们可以使用 parse_str()
函数将 cookie 字符串解析成数组,然后从数组中获取会话变量的值。以下是示例代码:
$cookieString = 'PHPSESSID=123abc; userid=100; username=john';
$cookieArray = array();
// 解析 cookie 字符串
parse_str(str_replace('; ', '&', $cookieString), $cookieArray);
// 获取会话变量的值
$sessionId = $cookieArray['PHPSESSID']; // 123abc
$userId = $cookieArray['userid']; // 100
$username = $cookieArray['username']; // john
代码解释:
首先,我们需要获取 cookie 字符串,这里假设为 $cookieString
。
接着,我们创建一个空数组 $cookieArray
,用于存储解析后的 cookie。
我们使用 str_replace()
函数将 $cookieString
中的分号和空格替换成连字符,得到 PHPSESSID=123abc&userid=100&username=john
,然后把它作为参数传给 parse_str()
函数。
parse_str()
函数将字符串解析成数组,并将结果存储在 $cookieArray
中。
最后,我们可以从 $cookieArray
中获取会话变量的值,例如 $cookieArray['PHPSESSID']
返回的值为 123abc
。
以上就是从 cookie 字符串中获取会话变量的方法。通过使用 parse_str()
函数,我们可以方便地将 cookie 字符串转换成数组,并获取其中的值。