2012-03-29 101 views
0

我有一個ASP.NET登錄應用程序。 登錄成功後,我的應用程序會創建一個Cookie。檢索Cookie值的一部分並存儲在變量中

在創建時,我的餅乾類似於這樣的:

Name: LoginCookie 

Value: guid=3eb8d82d-bc83-4ab9-b12b-880f84404a1d&login=true 

我的問題是,用PHP,我怎麼找回「的GUID」值,並將其存儲在一個變量?

非常感謝任何指針。

+0

你爲什麼不設置兩個單獨的cookie? – ThiefMaster 2012-03-29 06:38:11

回答

2

使用parse_str()

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']; 
+0

這很好。非常感謝您的幫助 :-) – michaelmcgurk 2012-03-29 06:57:51

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」中取出。

+0

謝謝!看起來像parse_str是最好的前進方向。 – michaelmcgurk 2012-03-29 06:58:21

相關問題