Как хранить массив в куках. Два способа

В этой статье я хочу показать два способа как хранить в куках массив.
Как всем известно, хранить массив в том виде как он есть, в куках нельзя. В куки можно записывать только строковые значения.
Все что нам нужно это просто преобразовать массив в строку и записать в куку. И потом прочитать из кук и преобразовать строку опять в массив.

Я нашел несколько способов, для конвертирования массива в строку и обратно. Первый спосовб — это сериализация, а второй это разложение с помощью функции implode.
Ниже приведены четыре функции — две из них переводят массив в староку и записываютс в куку, и две другие читают куки и переводят строку обратно в массив.

// записываем
function setArrayInCookie($nameCookies, $array){
    $value = serialize($array);
    setcookie($nameCookies, $value, time()+3600*24);
    return true;
}
// читаем
function getArrayInCookie($nameCookies){
    if(isset($_COOKIE[$nameCookies])){
        $result = unserialize($_COOKIE[$nameCookies]);
    }else{
        $result = false;
    }
    return $result;
}

// записываем
function setArrayInCookie2($nameCookies, $array){
    $value = implode('|||', $array);
    setcookie($nameCookies, $value, time()+3600*24);
    return true;
}
// читаем
function getArrayInCookie2($nameCookies){
    if(isset($_COOKIE[$nameCookies])){
        $result = explode('|||', $_COOKIE[$nameCookies]);
    }else{
        $result = false;
    }
    return $result;
} 

UPD 22.11.2016 Еще один способ, который оказался удобнее предыдущих: можно кодировать и декодировать массив в формат json, с помощью функций json_encode и json_decode

Рассказать друзьям:


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*