検索

ホームページ  >  に質問  >  本文

php - 逆シリアル化エラー、バックグラウンド データが疑わしく文字化けしていますか?

serialize() を使用してデータをシリアル化し、データベースに挿入します。その後、unserialize() を使用して逆シリアル化すると、データ文字列エラーが発生します。
エラーの内容は次のとおりです:unserialize() [ function.unserialize ]: 2544 バイトのオフセット 0 でエラーが発生しました

Google で多くの解決策を検索しましたが、問題はエンコードの問題が原因であるとすべて言われていました。
そこで、挿入した場所は、base64_encode(serialize($str)); に変更されました。

unserialize(preg_replace('!s:(d+):"(.*?)";!se', '"s:".strlen("$2").": に変更されたことを読んでください。 "$2";"', $string))

試してみましたが、完全には解決しませんでした。その後、いくつかのデータグラムで同じエラーが発生しました。挿入されたコンテンツが以下のような文字化けしたコードになっていることがわかりました。 >

< /p>

理由を詳しく教えてください。できれば詳しく教えてください。

phpcn_u1582phpcn_u15822791日前869

全員に返信(4)返信します

  • PHPz

    PHPz2017-05-16 13:10:00

    ソースデータを投稿してください。そうでない場合、どうやってテストできますか? 。

    返事
    0
  • PHP中文网

    PHP中文网2017-05-16 13:10:00

    シリアル化されたデータに問題がないか確認してください。以前はserializeを使用していましたが、いつも問題が発生したため、json_decode

    に変更するしかありませんでした。

    返事
    0
  • 曾经蜡笔没有小新

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

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

    そのデータはbase64でエンコードされており、文字化けしていません。

    返事
    0
  • 怪我咯

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

    リーリー

    返事
    0
  • キャンセル返事