Hotar CMS で投稿に画像を添付しようとすると、このエラーが発生する場合があります:
unserialize() [function.unserialize]: Error at offset
この問題は、シリアル化された文字列のバイト カウントの長さ。
エラーは、シリアル化された文字列の要素の 1 つに不正な長さが含まれている場合に発生します。この予想バイト数と実際のバイト数の不一致により、PHP の unserialize() 関数が失敗する可能性があります。
この問題に対処する簡単な方法の 1 つは、シリアル化された配列。これにより、バイト数がデータの実際のサイズと一致することが保証されます。
$data = preg_replace('!s:(\d+):"(.*?)";!e', "'s:'.strlen('').':\"\";'", $data); $unserialized_data = unserialize($data);
このエラーが再発しないようにするには、次の点を確認することをお勧めします。
シリアル化されたデータが不正確である可能性があると思われる場合は、 findSerializeError() のような関数を使用して検出して見つけることができます
信頼性を高めるため、シリアル化されたデータをデータベースに保存する前に Base64 エンコードし、取得するときに Base64 デコードすることをお勧めします。データが破損する可能性があります。
以上がHotaru CMS でシリアル化された文字列によって「unserialize()」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。