Основы PHP
  Что такое PHP?
  Возможности PHP
  Преимущества PHP
  История развития
  Что нового в PHP5?
  «Движок» PHP
  Переход на PHP 5.3
New Переход на PHP 5.6
  Введение в PHP
  Изучение PHP
  Основы CGI
  Синтаксис PHP
  Типы данных PHP
  Переменные в PHP
  Константы PHP
  Выражения PHP
  Операторы PHP
  Конструкции PHP
  Ссылки в PHP
  PHP и ООП
  Безопасность
  Функции PHP
  Функции по категориям
  Функции по алфавиту
  Стандартные функции
  Пользовательские
  PHP и HTTP
  Работа с формами
  PHP и Upload
  PHP и Cookies
  PHP и базы данных
  PHP и MySQL
  Документация MySQL
  Учебники
  Учебники по PHP
  Учебники по MySQL
  Другие учебники
  Уроки PHP
  Введение
  Самые основы
  Управление
  Функции
  Документация
  Математика
  Файлы
  Основы SQL
  Дата и время
  CURL
  Изображения
  Стили
  Безопасность
  Установка
  Проектирование БД
  Регулярные выражения
  Подготовка к работе
  Быстрый старт
  Установка PHP
  Установка MySQL
  Конфигурация PHP
  Download / Скачать
  Скачать Apache
  Скачать PHP
  Скачать PECL
  Скачать PEAR
  Скачать MySQL
  Редакторы PHP
  Полезные утилиты
  Документация
  PHP скрипты
  Скачать скрипты
  Инструменты
  PHP в примерах
  Новости портала
 Главная   »  Изучение PHP  »  Типы данных
 
 

Сериализация

Предположим, перед нами поставлена задача разработать тестовую систему (для тестирования знаний), и необходимо, чтобы можно было продолжить тест с того места, с которого он был прерван.

Мы можем использовать Cookies для этой цели. Но существует вопрос - как записать массив в Cookies?

Сохраниять массив в Cookies мы не можем, зато может сохранить строку. Функция Serialize() позволяет преобразовать любой объект в строку. Ей и можно воспользоваться для сохранения массива в Cookies.

Строка, полученная в результате сериализации функцией serialize(), имеет специальный формат. Для восстановления исходных данных (в нашем случае - массива) необходимо использовать функцию unserialize(). Приведем пример реализации сохранения массива в переменную (строковую), преобразовав массив в строку с помощью serialize():

<?php
// Предварительно создадим массив, записав в него случайные числа (10 значений):
for ($i=1; $i<=10; $i++) {
mt_srand();
$rn = mt_rand(0,200);
$arr[$i]=$rn;
// Выводим в браузер информацию, записанную в массив:
echo "<b>$arr[$i]</b><br>";
}
// Преобразовываем полученный массив $arr в строку с помощью функции serialize():
$s_arr = serialize($arr);
// Выводим строку, в которую был "упакован" массив $arr:
echo "<h3>Результат упаковки массива:</h3><h4 style=\"color:green\">$s_arr</h4>";
echo "<h3>А теперь распаковываем строку, содержащую массив:</h3>";
// Распаковываем массив из строки, используя функцию unserialize()
$uns_arr = unserialize($s_arr);
foreach ($uns_arr as $res_arr) echo "<b>$res_arr</b><br>";
?>

Очень удобно использовать функцию serialize() для передачи множества параметров через запросы GET или POST в "упакованном" виде одной строкой, предварительно преобразовав "упакованные" для передачи через GET или POST - запросы.

 
 
 Содержание 
Есть еще вопросы или что-то непонятно - добро пожаловать на наш  форум портала PHP.SU 
 

 
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS