Функция serialize()
возвращает строковое представление массива или объекта. Использование serialize для объекта сохранит имя класса и все его свойства, однако методы не сохраняются.
Для того, чтобы вернуть строковое представление обратно, используется функция unserialize()
. Сериализованную строку удобно хранить в БД или в текстовом файле.
Проблема
Иногда из-за разных кодировок функция unserialize вызывает ошибку типа:
Notice: unserialize(): Error at offset 234 of 5455 bytes in ... at line …
Способ ее устранения:
$text = preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'", $text);
$array = unserialize($text);
var_dump($array);
Но данный метод помогает не всегда, поэтому перед сохранением строку следует дополнительно кодировать в base64.
Но более лучший метод хранения массивов в строке это JSON, к томуже он читаемый.