Rumah > Soal Jawab > teks badan
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.
PHPz2017-05-16 13:10:00
Siarkan beberapa data sumber, jika tidak, bagaimana anda boleh mengujinya? .
PHP中文网2017-05-16 13:10:00
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
曾经蜡笔没有小新2017-05-16 13:10:00
base64_encode("a:1") == "YTox"
.
Data itu dikodkan base64, tidak bercelaru.