(PECL igbinary >= 1.1.1)
igbinary_serialize — Создаёт компактное, сохраняемое двоичное представление значения
Создаёт сохраняемое представление значения.
Полезно для хранения или передачи значений PHP без потери их типа и структуры.
Чтобы снова превратить сериализованную строку в значение PHP, можно использовать igbinary_unserialize().
valueЗамечание: Начало имён закрытых членов объекта (object) дополняются именем класса, а начало имён защищённых членов символом
'*'. Эти дополненные значения окружаются нулевым байтом с обеих сторон.
Возвращает строку, содержащую представление потока байтов value,
которое может быть сохранено где угодно.
Обратите внимание, что это двоичная строка, которая может включать в себя любое байтовое значение
и должна храниться и обрабатываться как таковая.
Например, вывод функции igbinary_serialize() обычно должен храниться
в поле базы данных BLOB, а не в поле CHAR или TEXT.
Пример #1 Пример использования igbinary_serialize()
<?php
$ser = igbinary_serialize(['test', 'test']);
echo urlencode($ser), "\n";
var_export(igbinary_unserialize($ser));
?>Результат выполнения приведённого примера:
%00%00%00%02%14%02%06%00%11%04test%06%01%0E%00 array ( 0 => 'test', 1 => 'test', )
Замечание: Обратите внимание, что многие встроенные объекты PHP не могут быть сериализованы. Однако те, у кого есть такая возможность, реализуют либо интерфейс Serializable, либо магические методы __serialize()/__unserialize() или __sleep()/__wakeup(). Если внутренний класс не соответствует ни одному из этих требований, он не может быть надёжно сериализован с помощью какого-либо сериализатора. Есть несколько исторических исключений из приведённого выше правила, когда некоторые внутренние объекты могут быть сериализованы без реализации интерфейса или раскрытия методов.