ホームページ >バックエンド開発 >PHPチュートリアル >PHP unserialize オフセットでエラーが発生しました

PHP unserialize オフセットでエラーが発生しました

WBOY
WBOYオリジナル
2016-07-29 08:54:551313ブラウズ

  1. php
  2. //私のページはUTF-8でエンコードされており、結果は次のようになります: a:2:{s:2:"en";s:21:"http:// www.phpddt.com";s:2:"cn";s:6:"チュートリアル";}
  3. //私のページは ANSI エンコードされており、結果は次のようになります: a:2:{s:2:" en";s:21:"http://www.phpddt.com";s:2:"cn";s:4:"チュートリアル";}
  4. echo Serialize(配列) ('en'=>'http://www.phpddt.com','cn'=> 上記から、ページのエンコーディングが異なり、シリアル化された中国語の文字列の長さが異なるため、シリアル化を解除するときに文字列の長さが実際の文字列の長さよりも長い場合、次のエラーが報告されます:
。 注意: unserialize() [function.unserialize]: オフセットでのエラー

解決策は、デシリアライズされた文字列を一度変換する必要があることです:


function

_unserialize (

  1. $string){return
  2. unserialize(
  3. preg_replace( '!s:(d+):"(.*?) ";!se' ,'"s:".strlen("$2").":"$2";"', $string));}
転載元:
http://www.phpddt.com/php/unserialize-error-at-offset.html

以上、PHP unserialize の Error at offset エラーについて、serialize の内容も含めて紹介しましたので、PHP チュートリアルに興味のある方の参考になれば幸いです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。