php提示Notice:unserialize()[function.unserialize]:Error错误解决办法

出现这个错误,可能会有几种原因,网上搜索的答案基本也是比较有针对性的一方面,关键在如何去寻找原因,并解决它。

分析一:在数据进行存储并反序列化时编码问题出错

这个原因是很常见的,比方,原本是以GBK编码进行存储,然后是UTF-8编码的,那么在进行unserialize()就会有问题;

解决方法一:将UTF-8编码的数据转换成GBK,PHP语言可以用iconv()函数;

分析二:重写反序列函数

一些情况可以把底层的函数重写,将gb2312转换成utf-8格式之后,每个中文的字节数从2个增加到3个之后导致了反序列化的时候判断字符长度出现了问题,所以需要使用正则表达式将序列化的数组中的表示字符长度的值重新计算一遍,代码如下:

function mb_unserialize($serial_str) {
    $out = preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'", $serial_str );
    return unserialize($out);
}

解决方法三:对字符数据进行base64_encode,然后serialize序列化,还原提取时,unserialize()再base64_decode

时间: 2024-11-14 11:54:23

php提示Notice:unserialize()[function.unserialize]:Error错误解决办法的相关文章

Oracle导入导出提示EXP-0006:出现内部不一致的错误解决办法

  exp.imp是ORACLE幸存的最古老的两个操作系统命令行工具,导入(IMP)/导出(EXP),昨天在Oracle用exp.imp导入导出报EXP-0006:出现内部不一致的错误. 以前用exp.imp导库命令成功的实现了Oracle数据库的导出.导入,对此,昨天再对服务器新安装的Oracle数据库用exp.imp导库,一直报"EXP-0006:出现内部不一致的错误",于是在网上百度,尝试其他导库方式,发现采用expdp.impdp数据泵同样可以完成数据库的导出.导入,而且数据泵

WinXP安装软件时出现NSIS ERROR错误解决方法

  WinXP安装软件时出现NSIS ERROR错误解决方法.虽然微软已经停止对WinXP的支持,还是有不少用户依然坚持使用XP,不过在安装软件的时候也会出现一些问题,近日有小伙伴说会出现NSIS ERROR的错误,这是什么原因造成的呢?又要如何解决,下面就让小编一一道来. 一.NSIS ERROR什么意思 系统错误提示英文为"installer integrity check has failed. common causes include incomplete download and d

ORA-01097错误解决办法及探索shutdown immediate

ORA-01097错误解决办法及探索shutdown immediate 很晚了要关机睡觉了,先把oralce 数据库关闭,结果出现下面的错误. SQL> shutdown immediate ORA-01097: cannot shutdown while in a transaction - commit or rollback first 提示说在一个事物未提交或者回滚前不能shutdown.我才想到我对一个测试用的表,进行了下面的更新而没有提交. SQL> update test01

IIS常见错误解决办法

  IIS常见错误解决办法     Q :为什么我的ASP页面到windows2003后就不能执行了,执行ASPX正常.     A :windows2003中默认没有启用ASP支持,在IIS的Web Service Extensions里找到Active Server Pages,将ALLOW选上,就可以了.     Q :我的IIS只要asp文件有错,就显示HTTP500错误,但是却不显示出错的详细信息.以前能够显示究竟是那个文件的那一行出错,但现在却不显示.     A :在IE的Inte

PHP编译安装时常见错误解决办法

  这篇文章主要介绍了PHP编译安装时常见错误解决办法,本文涵盖了PHP编译安装中的大多数错误,同时给出解决方法,需要的朋友可以参考下 This article is post on https://coderwall.com/p/ggmpfa configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution 代码如下: yum -y install libxslt-devel

XP系统提示“未能创建视频预览”的解决办法

  XP系统提示"未能创建视频预览"的解决办法          方案一:注册相关文件并检查是否损坏或丢失 1.单击"开始",单击"所有程序",单击"附件",单击"命令提示符"; 2.打开的命令提示符窗口依次执行以下命令,按回车键; regsvr32 Proppage.dll regsvr32 directSpy.dll regsvr32 Quartz.dll 3.弹出"XXXX中的DllRegi

缺少PhysXLoader.dll及未知错误解决办法

最新很多朋友玩单机游戏,会碰到各种不同的游戏错误,例如缺少PhysXLoader.dll.黑屏.卡屏.蓝屏.游戏运行不了.游戏进不去了,怎么办?下面小编来教你解决办法 缺少PhysXLoader.dll等错误解决办法: 如果你是N卡且支持PhysX,下载最新显卡驱动即可,如果不支持PhysX,这里单独下载PhysX驱动强行安装. 现在要说的是那种未知错误,也就是说玩游戏的时候跳出.运行不了等等,没有提示错误信息的错误该怎么解决. 如果玩单机游戏弹出了并且没有任何提示的话,我们第一个可以去猜想的就

教育技术服务平台【用户名/密码】错误解决办法

  教育技术服务平台这款软件只能通过手机客户端注册,电脑客户端不提供注册服务,下载手机版教育技术服务平台运行点击"家长注册"根据提示一步步接下去即可注册成功! 注册码要通过班主任获得,已注册能没显示平台号:先输入您孩名字接着输入注册码再输入您昵称选择您与孩关系输入密码能显示平台号! 教育技术服务平台[用户名/密码]错误解决办法: 一.用户名或者密码输入错误! 这个需要用户重新检查一下自己输入的用户名和密码,是否哪里输入错误了,少输入了一个字母或数字?或者多输入了一个字母或数字,或者大小

hadoop 集群常见错误解决办法

hadoop 集群常见错误解决办法: (一)启动hadoop集群时易出现的错误: 1.   错误现象:java.net.NoRouteToHostException: No route to host.    原因:master服务器上的防火墙没有关闭.    解决方法: 在master上关闭防火墙: chkconfig iptables off. 2.    错误现象:org.apache.hadoop.ipc.RPC: Server at JMN/10.22.1.203:9000 not a