为什么 PHP 将 plus 替换为 $_COOKIE 中的空格?
因此,根据我对PHP和cookie的理解,如果我使用该函数,那么我得到一个自动URL编码的cookie。当我进入数组时,我应该找回cookie,自动对url进行解码。问题是,当我查看时,它似乎正在解码cookie两次。setcookie()
$_COOKIE
$_COOKIE
假设我有一个 Cookie,其值为“名称|ID|电子邮件”,例如:
乔|123|my+email@somewhere.com
这将编码为:
Joe%7C123%7Cmy%2Mail%40某处.com
请注意,加号是编码的,所以从理论上讲,如果我解码它,我应该把它拿回来。由于这是在 中自动完成的,我应该找回我开始的东西。但相反,我回来了:$_COOKIE
乔|123|我的 email@somewhere.com
注意加号曾经所在的空间。这是我期望的,如果我在饼干上运行额外的。但我不是,所以我不知道为什么我会得到一个空间而不是一个加号。urldecode()
另一个有趣的转折。页面上的刷新似乎会产生正确的输出。任何想法为什么它的行为是这样的?
仅供参考,要设置初始cookie,我使用javascript和脚本来生成编码字符串。这可能是javascript和PHP之间的交接问题吗?escape()
想法将不胜感激。