php - Ralat penyahserialisasian, data latar belakang menjadi curiga bercelaru?
phpcn_u1582
phpcn_u1582 2017-05-16 13:08:00
0
4
854

Gunakan serialize() untuk menyerikan data dan kemudian masukkannya ke dalam pangkalan data, dan kemudian gunakan unserialize() untuk menyahsirikannya dan menghadapi beberapa ralat rentetan data;
Kandungan ralat ialah:unserialize() [ function.unserialize ]: Ralat pada offset 0 daripada 2544 bait

Saya mencari banyak penyelesaian di Google dan mereka semua mengatakan bahawa masalah itu disebabkan oleh masalah pengekodan
Jadi tempat saya memasukkannya ditukar kepada base64_encode(serialize($str));
Tempat di mana saya baca ia telah ditukar kepada
unserialize(preg_replace('!s:(d+):"(.*?)";!se', '"s:".strlen("$2".": "$2";"', $string))

Saya mencubanya dan ia berjaya tetapi ia tidak diselesaikan sepenuhnya Kemudian, ralat yang sama berlaku dalam beberapa datagram, saya mendapati bahawa kandungan yang dimasukkan bertukar menjadi sesuatu yang serupa dengan kod bercelaru di bawah >

< /p>

Sila bantu saya mengetahui sebabnya, sebaik-baiknya dengan lebih terperinci.

phpcn_u1582
phpcn_u1582

membalas semua(4)
PHPzhong

Siarkan beberapa data sumber, jika tidak, bagaimana anda boleh mengujinya? .

洪涛

Sahkan sama ada terdapat sebarang masalah dengan data bersiri anda. Saya menggunakan bersiri sebelum ini, tetapi ia sentiasa menghadapi masalah Kemudian saya tidak mempunyai pilihan selain menukar kepada json_decode

曾经蜡笔没有小新

base64_encode("a:1") == "YTox".

Data itu dikodkan base64, tidak bercelaru.

刘奇
unserialize(base64_decode($str))
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan