Получить часть значения Cookie и сохранить в переменной - PullRequest
0 голосов
/ 29 марта 2012

У меня есть приложение для входа в ASP.NET. Когда вход успешен, мое приложение создает Cookie.

При создании мой файл cookie выглядит примерно так:

Name: LoginCookie

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

Мой вопрос: с PHP, как мне получить значение 'guid' и сохранить его в переменной?

Большое спасибо за любые указатели.

Ответы [ 2 ]

2 голосов
/ 29 марта 2012

Использование 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'];
1 голос
/ 29 марта 2012

Вы можете сделать это с помощью регулярных выражений:

$cookieValue = $_COOKIE['LoginCookie'];
preg_match('#guid=([\-a-f0-9]+)#', $cookieValue, $matches);
$guid = $matches[0];

Если формат guid всегда такой, регулярное выражение может быть обновлено, чтобы быть более конкретным. Прямо сейчас он будет соответствовать чему-либо после guid = up, пока не совпадет с чем-то, что не является числом, строчной шестнадцатеричной буквой (a-f) или тире.

Использование PHP parse_str также является отличным вариантом, если файл cookie имеет формат key1 = value1 & key2 = value2 .... Он принимает строки стиля параметров URL и разбивает их на несколько пар ключ / значение.

$cookieValue = $_COOKIE['LoginValue'];
parse_str($cookieValue, $cookieParts);
$guid = $cookieParts['guid'];

Этот способ, вероятно, является более чистым способом получения этих значений способом "PHP".

...