网上的解决方案:
1. 报错场景:序列化字段中有中文,反序列化时有可能会出现报错。
错误原因:写入和取出数据库的时候,编码不同,中文符号长度不同,序列化中的长度就无法匹配。
//使用正则将错误的长度修正,@param $str @return正确的序列化字符串
preg_replace_callback('#s:(\d+):"(.*?)";#s',function($match){return 's:'.strlen($match[2]).':"'.$match[2].'";';},$str);
测试依旧报错,而且并没有写入库,不符合上面报错原因-从库中读数。
将中文排除后再测试一次。
2. 突然想起来我的原因是,因为将file读成了base64,特别长,所以会报这个错。
mark一下。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。