if ($delete_one == null && $delete_two == null && $delete_three == null) {
echo "THE CONTENT SHOULD BE GRABED ONCE";
$arr = array("foo" => "bar", 12 => "one");
echo $arr["foo"];
echo $arr[12];
$serialize_arr = serialize($arr);
setcookie("test", $serialize_arr);
}
else
{
echo " THIS PART WORKS! ";
$arr_ser = $_COOKIE["test"];
$arr = unserialize($arr_ser);
var_dump(arr_ser);
var_dump($arr);
if ($arr == null) {
echo " Why is there nothing in here?? ";
}
else
{
echo "There is something in this array!";
}
}
Файл cookie устанавливается, когда используется не $ delete_one, два или три, и когда пользователь отправляет форму, один из этих элементов изменяется, завершая оператор else. Файл cookie возвращается обратно, и var_dump (arr_ser) отобразит его, показывая сериализованный массив. Однако несериализация не работает. Это неверно, и я не уверен, почему не работает десериализация.
Я попробовал то, что сказал Райзен, просмотрел руководство по PHP и попытался подражать тому, что показывают примеры. Я создал два оператора if, второй из которых является копией примера, а другой немного изменен, чтобы поместить другое содержимое в массив. Пример работает, но внесенные изменения - нет. ПРИМЕЧАНИЕ: я использую это в серверной части WordPress для создания плагина.
<code>if ($delete_one == null && $delete_two == null && $delete_three == null) {
$arr [foo] = "bar";
$arr [boo] = "one";
$serialize_arr = gzcompress(serialize($arr), 9);
setcookie("test", $serialize_arr, time()+60*60*24*60, '/');
}
else
{
if(isset($_COOKIE[test])) {
$array = unserialize(gzuncompress($_COOKIE[test]));
echo "<pre>";
print_r($array);
echo "
";
}
}
if ($ delete_one == null && $ delete_two == null && $ delete_three == null) {
$ data [qwerty] = "blah";
$ data [1] [a] = "1aa";
$ data [2] [b] = "2bb";
$ data [3] [c] = ";;;;;;";
$ data [name] [first] = "Bob";
$ data [name] [last] = "Джонс";
$ data [val] = "Это очень длинная тестовая строка, чтобы увидеть, насколько хорошо работает сжатие!";
$ string = gzcompress (serialize ($ data), 9);
setcookie ("my_var", $ string, time () + 60 * 60 * 24 * 60, '/');
}
еще
{
if (isset ($ _ COOKIE [my_var])) {
$ array = unserialize (gzuncompress ($ _ COOKIE [my_var]));
echo "
";
print_r($array);
echo "
";
}
}
Контент не десериализуется, поэтому gzuncompress имеет ошибку данных.