首页 php教程 php手册 Notice:unserialize()[function.unserialize]:Error错误

Notice:unserialize()[function.unserialize]:Error错误

Jun 06, 2016 pm 08:11 PM
notice unserialize

出现这个错误,可能会有几种原因,网上搜索的答案基本也是比较有针对性的一方面,关键在如何去寻找原因,并解决它。 分析一:在数据进行存储并反序列化时编码问题出错 这个原因是很常见的,比方,原本是以GBK编码进行存储,然后是UTF-8编码的,那么在进行uns

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

分析一:在数据进行存储并反序列化时编码问题出错
这个原因是很常见的,比方,原本是以GBK编码进行存储,然后是UTF-8编码的,那么在进行unserialize()就会有问题;
解决方法一:将UTF-8编码的数据转换成GBK,PHP语言可以用iconv()函数;

分析二:重写反序列函数
一些情况可以把底层的函数重写,将gb2312转换成utf-8格式之后,每个中文的字节数从2个增加到3个之后导致了反序列化的时候判断字符长度出现了问题,所以需要使用正则表达式将序列化的数组中的表示字符长度的值重新计算一遍,代码如下:
function mb_unserialize($serial_str) {<br> ? ? $out = preg_replace('!s:(\d+):"(.*?)";!se', "'s:'.strlen('$2').':\"$2\";'", $serial_str );<br> ? ? return unserialize($out);<br> }

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

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

PHP Notice: Use of undefined constant解决方法 PHP Notice: Use of undefined constant解决方法 Jun 24, 2023 pm 11:15 PM

PHPNotice:Useofundefinedconstant解决方法在PHP开发过程中,可能会遇到“PHPNotice:Useofundefinedconstant”这个报错信息。这通常是因为在代码中使用了未定义的常量。常量在使用时应该先进行定义才能被正确引用,如果没有定义或者拼写错误,就会出现以上的报错信息。下面介绍几种解决这个问题

php怎么设置不提示notice php怎么设置不提示notice Feb 21, 2023 am 09:12 AM

php设置不提示notice的方法:1、在“php.ini”文件中改动“error_reporting”为“error_reporting = E_ALL & ~E_NOTICE”;2、在指定页面添加代码为“error_reporting(E_ALL ^ E_NOTICE);”。

使用PHP unserialize()函数实现反序列化 使用PHP unserialize()函数实现反序列化 Jun 27, 2023 am 08:01 AM

序列化是一种将数据结构或对象转换为便于存储、传输或表示的字符串的过程,反之则是将字符串解析为原始的数据结构或对象。在PHP中,我们可以使用serialize()函数将一个变量序列化为字符串,使用unserialize()函数将字符串反序列化为原始的数据结构或对象。本文将重点讲解PHPunserialize()函数的使用及注意事项。一、unserialize

PHP Notice: Undefined offset: 0的解决方法 PHP Notice: Undefined offset: 0的解决方法 Jun 22, 2023 am 08:12 AM

在PHP开发中,有时候我们运行代码会出现“PHPNotice:Undefinedoffset:0”的提示,这个提示通常伴随着一个数组越界错误的出现。当数组下标超出指定范围时,PHP会默认将其值置为NULL,并给出一条通知信息。这条提示信息虽然不影响程序的执行,但是会影响程序的运行效率和代码的可读性。那么,遇到这种情况我们应该怎么办呢?下面介绍一些解决

PHP Notice: Undefined variable: 的解决方法 in的解决方法 PHP Notice: Undefined variable: 的解决方法 in的解决方法 Jun 22, 2023 pm 10:01 PM

对于PHP开发者来说,遇到“Undefinedvariable”警告信息是非常常见的一件事情。这种情况通常出现在尝试使用未定义的变量时,会导致PHP脚本无法正常执行。这篇文章将为大家介绍如何解决“PHPNotice:Undefinedvariable:的解决方法in”的问题。造成问题的原因:在PHP脚本中,如果变量未被初始化或赋值,就会产生“Un

浅析php中serialize和unserialize的用法 浅析php中serialize和unserialize的用法 Mar 24, 2023 pm 02:57 PM

PHP是一种流行的编程语言,常用于Web开发。其中,serialize和unserialize是两个非常有用的函数,可以将PHP对象转换为字符串并进行反序列化。

PHP Notice: Undefined offset解决方法 PHP Notice: Undefined offset解决方法 Jun 25, 2023 am 09:51 AM

PHPNotice:Undefinedoffset是一种常见的PHP程序错误,它表示程序尝试使用数组中不存在的下标,导致程序无法正常运行。这种错误通常会在PHP解释器显示以下警告信息时发生:Notice:Undefinedoffset。下面是一些解决PHPNotice:Undefinedoffset错误的方法:检查代码首先,应该

PHP Notice: A non well formed numeric value encountered - 解决方法 PHP Notice: A non well formed numeric value encountered - 解决方法 Aug 18, 2023 pm 06:52 PM

PHPNotice:Anonwellformednumericvalueencountered-解决方法在使用PHP开发过程中,经常会遇到一些警告和错误信息。其中一个常见的警告是“Notice:Anonwellformednumericvalueencountered”。这个警告通常在尝试将字符串转换为数值时出现。在本文中,

See all articles