Понадобилось хранить массив в базе данных, воспользовался функцией serialize и всё бы ничего, но при unserialize возникла след. ошибка: PHP. Notice: unserialize(): Error at offset 10 of 41 bytes in
Как говорят хелпы, такая ошибка может возникать из-за раной кодировки, не проблема подумал я сменил кодировку, в .htaccess прописал кодировку по умолчанию, всё равно ничего не получилось.
Есть отличная регулярка, которая решает эту проблему, вот она:
$data = preg_replace('!s:(\d+):"(.*?)";!e', "'s:'.strlen('$2').':\"$2\";'", $data);
Теперь всё стало работать, но если я отправлял ссылки в массив, всё равно появлялась ошибка, в итоге я нашел замечательное решение моей проблемы! Просто кодируем в base64 а потом декодируем и вуаля, всё отлично работает!
$toDatabse = base64_encode(serialize($data)); // Сохраняем в базу данных $fromDatabase = unserialize(base64_decode($data)); // Забираем из базы данных