PHP unserialize出现Error at offset错误 mfc serialize serializable jquery serialize

WBOY
Lepaskan: 2016-07-29 08:54:55
asal
1275 orang telah melayarinya

  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(array('en'=>'http://www.phpddt.com','cn'=>'教程'));

从上很容易看出页面的编码不同,serialize的中文字符串的长度就不同,问题就出来了,如果你unserialize的时候字符串的长度大于实际字符串的长度,会报如下错误:
Notice: unserialize() [function.unserialize]: Error at offset 
解决办法是你要对反序列的字符串进行一次转换:

  1. function _unserialize($string)
  2. {
  3. return unserialize(preg_replace('!s:(\d+):"(.*?)";!se','"s:".strlen("$2").":\"$2\";"', $string));
  4. }

转载自: http://www.phpddt.com/php/unserialize-error-at-offset.html

以上就介绍了PHP unserialize出现Error at offset错误,包括了serialize方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan