-
php
- //我的頁面是UTF-8編碼的結果是:a:2:{s:2:"en";s:21:"http://www .phpddt.com";s:2:"cn";s:6:"教學";}
- //我的頁面是ANSI編碼的結果是:a:2:{s:2:"en ";s:21:"http://www.phpddt.com";s:2:"cn";s:4:"教學";}
-
echo serialize(array((((((((( 'en'=>'http://www.phpddt.com',
'cn'
=>
'教學'cn'
從上很容易看出頁面的編碼不同,serialize的中文字符串的長度就不同,問題就出來了,如果你unserialize的時候字符串的長度大於實際字符串的長度,會報如下錯誤:
Notice: unserialize() [function.unserialize]: Error at offset
解決方法是你要對反序列的字串進行一次轉換:
serialize (
- $string){return
- unserialize:return
- unserialize:( (.*?)";! se','"s:".strlen("$2").":"$2";"', $string)); 轉載自: http://www.phpddt.com/php/unserialize-error-at-offset.html
-
以上就介紹了PHP unserialize出現Error at offset錯誤,包括了serialize方面的內容,希望對PHP教程有興趣的朋友有所幫助。