PHP unserialize出现Error at offset错误
2013-10-24 00:00
393 查看
首先来看看PHP unserialize为什么会出现Error at offset错误:
从上很容易看出页面的编码不同,serialize的中文字符串的长度就不同,问题就出来了,如果你unserialize的时候字符串的长度大于实际字符串的长度,会报如下错误:
Notice: unserialize() [function.unserialize]: Error at offset
解决办法是你要对反序列的字符串进行一次转换:
<?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'=>'教程'));
从上很容易看出页面的编码不同,serialize的中文字符串的长度就不同,问题就出来了,如果你unserialize的时候字符串的长度大于实际字符串的长度,会报如下错误:
Notice: unserialize() [function.unserialize]: Error at offset
解决办法是你要对反序列的字符串进行一次转换:
function _unserialize($string) { return unserialize(preg_replace('!s:(\d+):"(.*?)";!se', '"s:".strlen("$2").":\"$2\";"', $string)); }
相关文章推荐
- PHP unserialize出现Error at offset错误
- PHP出现Notice: unserialize() [function.unserialize]: Error at offset问题的解决方案
- PHP出现Notice: unserialize() [function.unserialize]: Error at offset问题的解决方案
- PHP出现Notice: unserialize() [function.unserialize]: Error at offset问题的解决方案
- PHP出现Notice: unserialize(): Error at offset解决方案 【转载】
- PHP出现Notice: unserialize() [function.unserialize]: Error at offset问题的解决方案
- PHP出现Notice: unserialize() [function.unserialize]: Error at offset问题的解决方案
- 剑指offer---统计一个数字在排序数组中出现的次数。(PHP)
- 在php添加mongo过程中出现的mongo.so: > undefined symbol: php_json_encode in Unknown on line 0. After installation mongo driver for php 的错误
- 运行PHP出现No input file specified错误的解决办法
- php安装好wampserver后出现的问题
- php读取mssql日期出现中文字符的解决方法
- php-fpm经常出现502解决方法
- 安装PHP出现make: *** [sapi/cli/php] Error 1 解决办法
- linux下phpMyAdmin 出现 “缺少 mysqli 扩展,请检查 PHP 配置。”
- 解决Win7下运行php Composer出现SSL报错的问题
- php,二维数组的输出出现了问题,提示:Notice: Array to string conversion
- 工具mantisbt--将mantis安装到已经搭建好的PHP环境下出现的时区问题
- iis7以fastcgi配置php时出现FastCGI进程意外退出问题解决
- 同一个nginx多个php项目间互相调用出现错误