我有一個ASP.NET登錄應用程序。 登錄成功後,我的應用程序會創建一個Cookie。檢索Cookie值的一部分並存儲在變量中
在創建時,我的餅乾類似於這樣的:
Name: LoginCookie
Value: guid=3eb8d82d-bc83-4ab9-b12b-880f84404a1d&login=true
我的問題是,用PHP,我怎麼找回「的GUID」值,並將其存儲在一個變量?
非常感謝任何指針。
我有一個ASP.NET登錄應用程序。 登錄成功後,我的應用程序會創建一個Cookie。檢索Cookie值的一部分並存儲在變量中
在創建時,我的餅乾類似於這樣的:
Name: LoginCookie
Value: guid=3eb8d82d-bc83-4ab9-b12b-880f84404a1d&login=true
我的問題是,用PHP,我怎麼找回「的GUID」值,並將其存儲在一個變量?
非常感謝任何指針。
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'];
這很好。非常感謝您的幫助 :-) – michaelmcgurk 2012-03-29 06:57:51
你可以這樣用正則表達式給出一個鏡頭:
$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」中取出。
謝謝!看起來像parse_str是最好的前進方向。 – michaelmcgurk 2012-03-29 06:58:21
你爲什麼不設置兩個單獨的cookie? – ThiefMaster 2012-03-29 06:38:11