serialize() を使用してデータをシリアル化し、データベースに挿入します。その後、unserialize() を使用して逆シリアル化すると、データ文字列エラーが発生します。
エラーの内容は次のとおりです:unserialize() [ function.unserialize ]: 2544 バイトのオフセット 0 でエラーが発生しました
Google で多くの解決策を検索しましたが、問題はエンコードの問題が原因であるとすべて言われていました。
そこで、挿入した場所は、base64_encode(serialize($str)); に変更されました。
unserialize(preg_replace('!s:(d+):"(.*?)";!se', '"s:".strlen("$2").": に変更されたことを読んでください。 "$2";"', $string))
試してみましたが、完全には解決しませんでした。その後、いくつかのデータグラムで同じエラーが発生しました。挿入されたコンテンツが以下のような文字化けしたコードになっていることがわかりました。 >
< /p>
理由を詳しく教えてください。できれば詳しく教えてください。
ソースデータを投稿してください。そうでない場合、どうやってテストできますか? 。
シリアル化されたデータに問題がないか確認してください。以前はserializeを使用していましたが、いつも問題が発生したため、json_decode
に変更するしかありませんでした。base64_encode("a:1") == "YTox"
。そのデータはbase64でエンコードされており、文字化けしていません。
リーリー