我正在尝试在cookie的名称中使用括号.
它应该看起来像这样(这是浏览器想要它!):
Name: name[123456].newName
Content: 20
Run Code Online (Sandbox Code Playgroud)
这是我的例子:
$cookie = "name[123456].newName=20"
Run Code Online (Sandbox Code Playgroud)
但是当我分析浏览器看到的内容时,我得到了这个:
cookie['name'] = Array
Run Code Online (Sandbox Code Playgroud)
而且我要:
cookie['name[123456].newName'] = 20
Run Code Online (Sandbox Code Playgroud)
我的问题是:我应该如何以浏览器理解的方式编写cookie名称?
先感谢您.
实际上,你所要做的就是:
<?php
setcookie('name[123456].newName', 20);
?>
Run Code Online (Sandbox Code Playgroud)
这会生成以下标头:
Set-Cookie: name[123456].newName=20
Run Code Online (Sandbox Code Playgroud)
...和浏览器(好吧,至少是Firefox)似乎处理得很好.
当您想要读回值时,问题就开始了.PHP有一个不错的功能:每当它找到一个带有方括号的输入参数(get,post,cookie ......)时,它就会从中构建一个数组.所以print_r($_COOKIE)显示这个:
Array
(
[name] => Array
(
[123456] => 20
)
)
Run Code Online (Sandbox Code Playgroud)
我不知道有任何方法可以禁用此功能,因此您可能需要使用字符串函数并解析原始cookie的内容,可以在以下位置找到$_SERVER['HTTP_COOKIE']:
name[123456].newName=20
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
542 次 |
| 最近记录: |