2014-08-07

PHP Serialize() & Unserialize() Issues

PHP дээр Array -> String -> Array гэж хөрвүүлэхдээ (array-г string-рүү хөрвүүлэх, хөрвөсөн string-г эргүүлж array болгох)

//array-г string төрөл рүү хөрвүүлэх
$safe_string_to_store =serialize($multidimensional_array);

//хөрвөсөн string-г array болгох
$array_restored_from_db = unserialize($encoded_serialized_string);

Serialize хийхэд ямар array байснаас хамаараад эргээд Array болгох явцад алдаа гарах магадлал өндөр юм байна. Доорх төрлийн алдаа гарна ихэвчлэн.

Notice: unserialize(): Error at offset 2 of 52 bytes in file.php on line 130

Шийдэл: php.net дээр зөвлөснөөр бол serialize хийгээд base64 төрөл рүү хөрвүүлж хадгалсан нь найдвартай болж таарлаа.

//to safely serialize
$safe_string_to_store = base64_encode(serialize($multidimensional_array));

//to unserialize...
$array_restored_from_db = unserialize(base64_decode($encoded_serialized_string));

Happy coding...