如何访问cookie数组子变量

时间:2012-03-31 01:30:19

标签: php cookies session-cookies

如何访问user_id: 这是我的cookie的print_r:

Array
(
     [PHPSESSID] => gv0hsh6uel9kiuprdoc0uqboq4
     [oauth_token] => 40533855-FNM77JeuJIPdKclYyaT2Fi9jZRu2NGAHh5FeveNk
     [oauth_token_secret] => C6GDTEu60rGa4aDbqjncm6yfUf9Xc9520AuX9GXag
     [SocialAuth] => a:2:{s:4:"type";s:8:"facebook";s:7:"user_id";s:2:"22";}
     [__utma] => 157144508.1187834205.1333154906.1333154906.1333154906.1
     [__utmb] => 157144508.35.10.1333154906
     [__utmc] => 157144508
     [__utmz] => 157144508.1333154906.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
)

我的用户ID在SocialAuth行的末尾......“22”。但我似乎无法访问它。

$user = $_COOKIE["SocialAuth"]["user_id"];

返回“a”。

我这样做了吗? 提前谢谢。

1 个答案:

答案 0 :(得分:4)

$_COOKIE['SocialAuth']中有序列化数组。请查看serializeunserialize的手册页。

使用这样的反序列化来访问用户ID:

$user = unserialize($_COOKIE['SocialAuth'])['user_id'];

或者在PHP 5.4之前:

$arr = unserialize($_COOKIE['SocialAuth']);
$user = $arr['user_id'];