可以使用PHP内置的函数parse_str()来解析cookie字符串。

例如,假设有如下cookie字符串:

foo=bar; baz=qux; name=John%20Doe

可以使用以下代码解析:

$cookieStr = 'foo=bar; baz=qux; name=John%20Doe';
parse_str(str_replace('; ', '&', $cookieStr), $cookies);
print_r($cookies);

输出结果为

Array
(
    [foo] => bar
    [baz] => qux
    [name] => John Doe
)

解释

  1. str_replace('; ', '&', $cookieStr) 将cookie字符串中的分号和空格替换为&符号,以便使用parse_str()函数解析。
  2. parse_str()函数将解析后的cookie键值对保存在$cookies数组中。
  3. print_r()函数输出数组内容。

    还原字符串

    可以使用PHP内置的函数http_build_query()将数组转换为URL编码的查询字符串,然后再替换掉一些特殊字符,即可得到Cookie字符串。

例如,假设有如下数组:

$cookies = array(
    'foo' => 'bar',
    'baz' => 'qux',
    'name' => 'John Doe'
);

可以使用以下代码将其转换为Cookie字符串:

$cookieStr = http_build_query($cookies);
$cookieStr = str_replace(['&', '='], ['; ', '='], $cookieStr);
echo $cookieStr;

输出结果为:

foo=bar; baz=qux; name=John+Doe

解释:

  1. http_build_query()函数将数组转换为URL编码的查询字符串。
  2. str_replace()函数将查询字符串中的&符号替换为分号和空格,将=符号替换为=号,以得到Cookie字符串。
最后修改:2023 年 04 月 30 日
如果觉得我的文章对你有用,请随意赞赏