可以使用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
)
解释
- str_replace('; ', '&', $cookieStr) 将cookie字符串中的分号和空格替换为&符号,以便使用parse_str()函数解析。
- parse_str()函数将解析后的cookie键值对保存在$cookies数组中。
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
解释:
- http_build_query()函数将数组转换为URL编码的查询字符串。
- str_replace()函数将查询字符串中的&符号替换为分号和空格,将=符号替换为=号,以得到Cookie字符串。