2010-06-24 50 views
1

ASP.Net具有在Cookie中使用'子密钥'的概念。即你可以写与PHP setcookie类似于ASP.Net Cookie子项

Response.Cookies("userInfo")("userName") = "patrick" 
Response.Cookies("userInfo")("lastVisit") = "today" 

这一个cookie将创建一个cookie,它看起来像

Name: userInfo 
Value: userName=patrick:lastVisit=today 

有PHP中的本地方法来读/写像上面一个饼干?

我需要读/写在PHP一个cookie可以由ASP.Net与子项

回答

1

读取写这样一个Cookie:

$userInfo = array(
    'userName' => 'patrick' 
    ,'lastLogin' => 'today'); 

$userInfo = str_replace('&', ':', http_build_query($userInfo)); 
setrawcookie('userInfo', $userInfo); 

解析该cookie返回到一个数组:

$userInfo = parse_str(str_replace(':', '&', $_COOKIE['userInfo')); 
+0

我在写这种格式的cookie时特别面临问题:“subkey = value:subkey2 = value”。 PHP在将非转义数据写入cookie时也有问题。它将'='转换为%3D – Dot 2010-06-24 13:09:38

+0

@Swizzy使用urldecode来解码字符串。 – mmattax 2010-06-24 13:37:58

+0

是的,我可以用户urldecode,但我不得不重写所有的ASP.Net代码来做类似的操作。有什么办法的cookie可以包含“userName = patrick:lastVisit =今天”而不是“\t userName%3Dpatrick%3AlastLogin%3Dtoday”? – Dot 2010-06-28 07:45:13

1

setrawcookie()是一个解决方案。