这种情况发生的原因有多种可能,最大的可能就是在序列化数据的时候的编码和反序列化时的编码不一样导致字符串的长度出现偏差。例如数据库编码latin1和UTF-8字符长度是不一样的。
解决方案:
自己从网上找的小函数来纠正序列化字符串中字符串长度的问题
Utf-8
functionmb_unserialize($serial_str){
$serial_str=preg_replace('!s:(\d+):"(.*?)";!se',"'s:'.strlen('$2').':\"$2\";'",$serial_str);
$serial_str=str_replace("\r","",$serial_str);
returnunserialize($serial_str);
}
ASC
functionasc_unserialize($serial_str){
$serial_str=preg_replace('!s:(\d+):"(.*?)";!se','"s:".strlen("$2").":\"$2\";"',$serial_str);
$serial_str=str_replace("\r","",$serial_str);
returnunserialize($serial_str);
}
分享到:
相关推荐
本文实例讲述了php中unserialize返回false的解决方法,分享给大家供大家参考。具体方法如下: php 提供serialize(序列化) 与unserialize(反序列化)方法。 使用serialize序列化后,再使用unserialize反序列化就可以...
php的serialize()函数和unserialize()函数 适用情境:serialize()返回字符串,此字符串包含了表示value的字节流,可以存储于任何地方。这有利于存储或传递 PHP 的值,同时不丢失其类型和结构。比较有用的地方就是将...
在php中serialize()与unserialize()函数是一对函数,下面本文章就来为各位同学介绍serialize()与unserialize()函数的使用例子,希望能帮助到各位。
主要介绍了php函数serialize()与unserialize()用法,以实例形式详细讲述了php函数serialize()与unserialize()的适用情况与使用方法,具有很好的参考借鉴价值,需要的朋友可以参考下
unserialize.php
才开始的设计思路是通过生成的php代码放到.php文件中,然后再把.php文件载入进来,后来,发现操作起来不太方便,所以,决定使用serialize()函数和unserialize()函数,这两个函数的用法真是绝配,一个是进行序列化...
主要介绍了php序列化函数serialize() 和 unserialize() 与php原生序列化方法对比,有需要的小伙伴可以参考下。
magic_quotes_gpc是一个php中一个给单双引号增加一些安全过滤的函数,但此函数对于我们使用unserialize函数时会产生一些影响,下面我们就这个问题与大家看几个实例与解决办法. 昨天朋友让我帮他解决下他网站的购物车...
于是便联想到PHP中的对象怎么样序列化存储性价比最高呢?接着想到了之前同事推荐的JSON编码和解码函数。 据他所说,json_encode和json_decode比内置的serialize和unserialize函数要高效。 于是我决定动手实验,证实...
软件安装使用说明:源码需要服务器需要PHP+mysql环境,需支持伪静态规则及unserialize 函数 serialize 函数,iconv 函数支持。先将源码以二进制上传到网站根目录,运行install目录安装,填写MYSQL信息。1、系统...
serialize()和unserialize()在php手册上的解释是:serialize — Generates a storable representation of a valueserialize — 产生一个可存储的值的表示unserialize — Creates a PHP value from a stored ...
信息安全_数据安全_9_ZN2018_WV_-_PHP_unserialize 安全测试 数据分析 可信编译 水坑攻击 安全设计
var unserialize = require('unserialize'); console.log(unserialize('a:2:{s:4:"name";s:4:"Andy";s:3:"age";i:82;}')); // { name: 'Andy', age: 82 } 测验 npm test 作者 Andreas Brekken 执照 国际学习中心
// unserialize() in php out, _ := gophp.Unserialize([]byte(str)) fmt.Println(out) //map[php:世界上最好的语言] // serialize() in php jsonbyte, _ := gophp.Serialize(out) fmt.Prin