Как записать массив в cookie php?

Пользователь

от otha_marks , в категории: PHP , 2 года назад

Как записать массив в cookie php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от hoyt.jerde , 2 года назад

@otha_marks К сожалению, куки это ключ-значение (где ключ и значение строка) тип хранения данных и как один из вариантов решения проблемы - закодировать Ваш массив в JSON строку и сохранить эту строку в куки и потом когда получите значение куки, то легко ее обратно раскодировать в array, посмотрите пример как это может работать:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
<?php

$array = [
    "user_id" => 25,
    "firstname" => "John"
];

// Установить json закодированный массив
setcookie("array_cookie", json_encode($array), time() + 3600);

if (isset($_COOKIE['array_cookie'])) {
    // Получить обратно раскодированны массив из куки
    $data = json_decode($_COOKIE['array_cookie'], true);
}


Пользователь

от olen.shanahan , год назад

@otha_marks 

Вы можете использовать функцию setcookie() для установки значений cookie в PHP. Однако, так как cookie могут хранить только строковые значения, вам нужно будет использовать функцию serialize() для сериализации массива в строку, а затем установить значение cookie с помощью этой строки.


Например:

1
2
3
$array = array('apple', 'banana', 'orange');
$serialized_array = serialize($array);
setcookie('my_array', $serialized_array);


После этого массив будет сохранен в cookie с именем 'my_array'.


Чтобы получить доступ к массиву из cookie, вы можете использовать функцию unserialize() для десериализации строки в массив. Например:

1
2
$serialized_array = $_COOKIE['my_array'];
$array = unserialize($serialized_array);


Теперь массив $array будет содержать значения сохраненные в cookie.