2010-06-24 5 views
1

ASP.Net имеет концепцию использования «subkeys» в файлах cookie. т.е. Вы можете написать печенье сPHP setcookie похож на подкасты ASP.NET Cookie

Response.Cookies("userInfo")("userName") = "patrick" 
Response.Cookies("userInfo")("lastVisit") = "today" 

Это позволило бы создать печенье, которое выглядит как

Name: userInfo 
Value: userName=patrick:lastVisit=today 

Есть ли нативный метод в PHP для чтения/записи куки, как один из приведенных выше?

мне нужно прочитать/написать печенье в PHP, который может быть прочитан с ASP.Net подразделов

ответ

1

Чтобы написать такое печенье:

$userInfo = array(
    'userName' => 'patrick' 
    ,'lastLogin' => 'today'); 

$userInfo = str_replace('&', ':', http_build_query($userInfo)); 
setrawcookie('userInfo', $userInfo); 

для разбора куки обратно в массив:

$userInfo = parse_str(str_replace(':', '&', $_COOKIE['userInfo')); 
+0

Я особенно сталкиваюсь с проблемами при написании файла cookie в этом формате: «subkey = value: subkey2 = value». У PHP возникают проблемы с записью необработанных данных в файл cookie. Он преобразует '=' в% 3D – Dot

+0

@Swizzy Используйте urldecode для декодирования строки. – mmattax

+0

Да, я мог бы использовать urldecode, но мне придется переписать весь код ASP.Net, чтобы сделать аналогичную манипуляцию. Есть ли способ, которым файл cookie может содержать «userName = patrick: lastVisit = today» вместо «\t userName% 3Dpatrick% 3AlastLogin% 3Dtoday»? – Dot

1

setrawcookie() - решение для этого.

Смежные вопросы