2015-01-08 2 views
1

Я хочу перетасовать массив, а затем сериализовать его и сохранить в виде файла cookie.PHP сохранить массив в cookie

$random_ads = array(
    '<li><a href="#">Test 1</a></li>', 
    '<li><a href="#">Test 2</a></li>', 
    '<li><a href="#">Test 3</a></li>' 
); 
shuffle($random_ads); 
$ra_serialized = serialize($random_ads); 
setcookie('random_ads', $ra_serialized, time()+3600*24, '/'); 

Затем я попытался использовать десериализуются ($ _ COOKIE [ 'random_ads']) и распечатать массив, но не работает. Он ничего не печатает. Пожалуйста, дайте мне несколько идей. Главное, что я хочу, - это сохранить массив в cookie и вернуть его, когда захочу. Благодарю.

+1

Он отлично работает для меня! Вы снова 'unserialize()' его ?! Так что-то вроде этого: 'print_r (unserialize ($ _ COOKIE [" random_ads "]));' Это делает трюк для вас? – Rizier123

+0

Не могу воспроизвести. Я запускаю ваш код и получаю ожидаемый результат. PHP-5.5.19. –

+0

Какова ваша версия php? Также, пожалуйста, покажите нам полный скрипт, который вы используете – Rizier123

ответ

0

Вы можете использовать json_encode ($ random_ads) или просто присоединиться ('|', $ random_ads), а затем проанализировать его на стороне клиента.

+1

Этот вопрос не имеет ничего общего с json! – Rizier123

+0

Я отредактировал свой вопрос после отладки еще немного. –

1

попробовать это

$random_ads = array(
    '<li><a href="#">Test 1</a></li>', 
    '<li><a href="#">Test 2</a></li>', 
    '<li><a href="#">Test 3</a></li>' 
); 
shuffle($random_ads); 
$ra_serialized = serialize($random_ads); 
setcookie('random_ads', $ra_serialized, time()+3600*24, '/'); 
$getarray = unserialize($_COOKIE['random_ads']); 
foreach($getarray as $getarray1) 
{ 
    echo $getarray1; 
} 
0

После просмотра в течение нескольких часов, я нашел это решение, и это работает!

//to safely serialize 
$safe_string_to_store = base64_encode(serialize($multidimensional_array)); 

//to unserialize... 
$array_restored_from_db = unserialize(base64_decode($encoded_serialized_string)); 

Подробнее об этом решении HERE

Смежные вопросы