我有一个ASP.NET登录应用程序。 登录成功后,我的应用程序会创建一个Cookie。
创建时,我的cookie类似于:
Name: LoginCookie
Value: guid=3eb8d82d-bc83-4ab9-b12b-880f84404a1d&login=true
我的问题是,使用PHP,如何检索'guid'值并将其存储在变量中?
非常感谢任何指示。
答案 0 :(得分:2)
parse_str($_COOKIE['LoginCookie'], $cookie);
// now 'guid' and 'login' are available in the array $cookie:
echo var_export($cookie, 1), PHP_EOL;
echo $cookie['guid'];
答案 1 :(得分:1)
你可以用正则表达式给出一个镜头:
$cookieValue = $_COOKIE['LoginCookie'];
preg_match('#guid=([\-a-f0-9]+)#', $cookieValue, $matches);
$guid = $matches[0];
如果guid的格式总是那样,那么正则表达式可以更新为更具体。现在它将在guid = up之后匹配任何内容,直到它与不是数字,小写十六进制字母(a-f)或破折号的东西匹配。
如果cookie是key1 = value1& key2 = value2 ...格式,那么使用PHP的parse_str也是一个很好的选择。它采用URL参数样式字符串并将其分解为多个键/值对。
$cookieValue = $_COOKIE['LoginValue'];
parse_str($cookieValue, $cookieParts);
$guid = $cookieParts['guid'];
这种方式可能是以“PHP”方式获取这些值的更简洁方法。