Como inserir um array php em um cookie

Como inserir um array php em um cookieCookie é um arquivo de texto cuja função é armazenar dados no computador do usuário, mesmo após o fechamento do navegador. Para inserir strings ou números em um cookie utilizando PHP, é relativamente simples. Porém, inserir arrays ou objetos, pode se tornar um pesadelo para os iniciantes na linguagem. Veja uma solução bem simples para este caso.

Imaginem a seguinte situação: Você chega a um site de compras, escolhe os seus produtos e os insere no carrinho de compras. Ocorre algo e o seu computador desliga repentinamente… Você teria que voltar ao site e procurar todos os produtos novamente… Mas, com o Cookie, os produtos podem ser salvos no seu computador, assim, no momento que você entrar no site, lá está o seu carrinho novamente, do jeito que estava antes!

Um carrinho de compras é um exemplo comum, mas serve para ilustrar esta matéria. Veja como funcionaria um array neste caso:

Array
(
    [carrinho] => Array
        (
            [produtos] => Array
                (
                    [0] => Array
			(
                            [nome] => Notebook LG
                            [preco] => 2000.00
                            [qtde] => 1
                        )
                )

        )
)	

Como armazenar toda esta estrutura de Arrays Multidimensionais dentro de um Cookie, que só armazena texto? A resposta é muito simples, podemos usar duas funções do PHP para resolver esta questão: Serialize e Unserialize.
A função serialize irá “codificar todo o array em uma string”, para que possa ser gravada no Cookie. Já a função unserialize irá decodificar novamente para um array. Simples não? Veja um exemplo de uso:

<?php
    $meu_array&#91;"feira"&#93; = array("fruta" => "5"); // meu array
    $meu_array = serialize($meu_array); //serializando o array, eu posso transmiti-lo num cookie
    setcookie("meu_cookie",$meu_array,time()*60*60*24*30); //criando um cookie com o meu array
    
    //recebendo o cookie, se ele tiver sido criado
    $meu_array = isset($_COOKIE["meu_cookie"]) ? $_COOKIE["meu_cookie"] : "";
    print_r(unserialize($meu_array)); //decodificando o cookie e mostrando o array

    //o resultado seria
    Array
    (
        [feira] => Array
             (
                 [fruta] => 5
             )
     )
?>	

Você também poderá fazer isso com objetos.
Espero que tenham gostado

Lucas Peperaio

Estudante de Ciência da Computação, trabalho com desenvolvimento web há 5 anos e com hardware há 8. Nas horas vagas, sou entusiasta de Overclock, Casemod e Benchmarks, além é claro dos Games. Apaixonado por informática e pela vida, procuro compartilhar meus conhecimentos e assim, ajudar as pessoas. Siga-me no youtube, posto semanalmente muito material sobre Hardware, tecnologia e games em geral: Clique aqui

Receba gratuitamente em seu E-mail
Novos artigos do meu Blog!


Após o Cadastro você receberá um Email Automático. Clique no link enviado para Ativar e receber as novidades.

Categorias do site





1 Comentário Deixe o seu

  1. Wagner Macedo de Carvalho

    Este método pode ser utilizado em matrizes? Teria alguma modificação?