Bir tanımlama iç içe diziler saklanması

5 Cevap php

Ben bir tanımlama iç içe diziler depolamak çalışıyorum. Ben bir JSON dize olarak diziyi saklamak için karar verdi. Ancak, ben bu uyarıyı alıyorum:

PHP Uyarı: Çerez değerleri, aşağıdakilerden herhangi 'içeremez; \ T \ r \ n foobar.php içinde '014 \ 013 \

Bir tanımlama iç içe diziler depolama önerilen yolu var mı?

5 Cevap

Eğer mevcut sebat bazı diğer form (db, oturumlar, memcache) varsa, ben orada gerçek verileri depolamak tavsiye ederim. Sonra istenen veri aramak için kullanılabilecek, çerez benzersiz bir tanımlayıcı koydu. Bu sadece çok temiz ve daha güvenli.

Bir tanımlama iç içe diziler depolama önerilen yolu var mı?

Evet - yok. Bir oturumu veya diğer kolu kullanarak serverside saklayın. Orada biçimlendirme ve kurabiye veri depolama ile kapsam sorunları, ayrıca bir dosya boyutu limt var değil sadece.

C.

Ben bunu yapmak için temiz bir yolu olduğunu sanmıyorum, ama urlencode json_encode d dize bir tanımlama saklamak mümkün olabilir.

Edit: Tom Haigh yolu (base64_encode kullanarak) kesinlikle temizdir.

$array = array();
$array[] = array(1,2,3);
$array[] = array('a','b','c');
setcookie("test",serialize($array));

Sadece seri, gayet güzel çalışıyor.

Eğer çerez bu olsun:

'test' => string 'a:2:{i:0;a:3:{i:0;i:1;i:1;i:2;i:2;i:3;}i:1;a:3:{i:0;s:1:"a";i:1;s:1:"b";i:2;s:1:"c";}}' (length=86)