cari

Rumah  >  Soal Jawab  >  teks badan

php - Ralat penyahserialisasian, data latar belakang menjadi curiga bercelaru?

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_u1582phpcn_u15822773 hari yang lalu863

membalas semua(4)saya akan balas

  • PHPz

    PHPz2017-05-16 13:10:00

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

    balas
    0
  • PHP中文网

    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

    balas
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-16 13:10:00

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

    Data itu dikodkan base64, tidak bercelaru.

    balas
    0
  • 怪我咯

    怪我咯2017-05-16 13:10:00

    unserialize(base64_decode($str))

    balas
    0
  • Batalbalas