PHP将字符串解析成变量或数组_PHP解析cookie字符串为数组并还原为字符串

远昔 代码记录 2023-09-03 1424 0

parse_str() 函数把字符串解析到变量中。

注释:如果未设置 array 参数,由该函数设置的变量将覆盖已存在的同名变量。


语法

parse_str(string,array)


参数描述
string必需。规定要解析的字符串。
array可选。规定存储变量的数组名称。该参数指示变量存储到数组中。
<?php
parse_str("name=远昔&age=博客");
echo $name."==".$age;
//运行结果:远昔==博客
?>

例如,假设有如下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字符串。

评论

发表评论:

挤眼 亲亲 咆哮 开心 想想 可怜 糗大了 委屈 哈哈 小声点 右哼哼 左哼哼 疑问 坏笑 赚钱啦 悲伤 耍酷 勾引 厉害 握手 耶 嘻嘻 害羞 鼓掌 馋嘴 抓狂 抱抱 围观 威武 给力
提交评论

清空信息
关闭评论