📜  如何从 cookie 字符串中获取会话变量 - PHP (1)

📅  最后修改于: 2023-12-03 14:51:45.092000             🧑  作者: Mango

如何从 cookie 字符串中获取会话变量 - PHP

在 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

代码解释:

  1. 首先,我们需要获取 cookie 字符串,这里假设为 $cookieString

  2. 接着,我们创建一个空数组 $cookieArray,用于存储解析后的 cookie。

  3. 我们使用 str_replace() 函数将 $cookieString 中的分号和空格替换成连字符,得到 PHPSESSID=123abc&userid=100&username=john,然后把它作为参数传给 parse_str() 函数。

  4. parse_str() 函数将字符串解析成数组,并将结果存储在 $cookieArray 中。

  5. 最后,我们可以从 $cookieArray 中获取会话变量的值,例如 $cookieArray['PHPSESSID'] 返回的值为 123abc

以上就是从 cookie 字符串中获取会话变量的方法。通过使用 parse_str() 函数,我们可以方便地将 cookie 字符串转换成数组,并获取其中的值。