Ipotizziamo di avere uno script jQuery che salva in un cookie il contenuto di un form (nell’esempio utilizzo jQuery Cookie)

 $.cookie('nomecookie',$('#form').serialize(), { expires: 1 });

In questo modo verrà settato un cookie di nome “nomecookie” avente il seguente contenuto:

nome_campo1%3Dvalore1%26nome_campo2%3Dvalore2

Per leggere il contenuto del cookie tramite php solitamente si utlizza la variabile superglobale $_COOKIES[‘nomecookie’].

Se guardiamo però il contenuto della variabile troveremo una stringa encodata (come se i parametri fossero passati in una querystring) e quindi simile a questa:

nome_campo1=valore1&nome_campo2=valore2

Visto che la stringa così è inutilizzabile, si potrebbe pensare quindi di splittare la stringa ogni volta che c’è la & e poi creare un array a partire da queste stringhe utilizzando l’uguale (=) come separatore tra chiave e valore.

Già, ma perchè reinventare la ruota?

Php mette a disposizione un utilissima funzione parse_str(http://php.net/manual/en/function.parse-str.phpche fa tutto al posto nostro.

E’ sufficiente quindi scrivere:

parse_str($_COOKIE['richiesta'],$data);

e $data diventerà un array chiave/valore con i dati contenuti nel cookie