Сериализация
Как то я занимался проектом, который делает сложные (долгие) расчеты каждый день. Запуск расчетов осуществлялся по крону. Результаты сериализовались функцией serialize и сохранялись в файл. Затем можно было посмотреть результаты в табличке за произвольный промежуток времени, они доставались из файла, превращались обратно в массив функцией unserialize.
Разрабатываю я проекты на винде, а работают они потом в линукс системах. Чтобы во время отладки проекта, не прогонять долгие расчеты и там и там, я копировал файлы с сериализованными результатами с одной системы на другую... И... и иногда они оказывались несовместимы между собой! Вот такой вот сюрприз.
$A = array([...]);
$S = serialize($A); //на линукс системе
$A1 = unserialize($S); //на виндовс системе
$A != $A1;
Вот как то так.
Если у вас будет необходимость переносить результаты сериализации между различными системами, используйте json_encode() и json_decode()
У json_decode вторым параметром идет bool $assoc = false, т.е. функция будет возвращать объект, если нужен массив, передавайте true
Подробное описание функций на php.net:
serialize()unserialize()
json_encode()
json_decode()
Комментарии:
антон
21.11.2019 12:06:49
Оставить комментарий: