VCPHP网站模板 - 外贸网站建设,外贸网站模板

VCPHP网站模板

当前位置: 首页 > 建站教程 > php教程 >

修复PHP在64位下序列化(serialize)的字符串在32位机器下反序列化(unserialize)出错的问题

时间:2014-07-25 14:58来源:未知 作者:VCPHP网站模板 点击:
32机器下PHP 整型数值的范围最大不超过2147483647,而有些超出范围的数值在64序列化好的数据标识为整型,在反序列时就可能会出错。 尝试使用以下的办法可以修复此问题: ?php function
32机器下PHP 整型数值的范围最大不超过2147483647,而有些超出范围的数值在64序列化好的数据标识为整型,在反序列时就可能会出错。
尝试使用以下的办法可以修复此问题:
 
 
<?php
 
function intvalS($s,$num) {
return 's:'.strlen($num).':"'. $num.'";';
}
 
//示例字符串(ShopEx4.85的规格参数) 13842408991超过2147483647范围
 
$specval = 'a:1:{i:6;a:3:{i:13842408991;a:5:{s:10:"spec_value";s:6:"黑色";s:9:"spec_type";s:4:"text";s:13:"spec_value_id";s:3:"237";s:10:"spec_image";s:0:"";s:17:"spec_goods_images";s:0:"";}i:13842409012;a:5:{s:10:"spec_value";s:6:"白色";s:9:"spec_type";s:4:"text";s:13:"spec_value_id";s:3:"238";s:10:"spec_image";s:0:"";s:17:"spec_goods_images";s:0:"";}i:13842409023;a:5:{s:10:"spec_value";s:6:"紫色";s:9:"spec_type";s:4:"text";s:13:"spec_value_id";s:2:"31";s:10:"spec_image";s:0:"";s:17:"spec_goods_images";s:0:"";}}}';
$specval = 'a:3:{s:4:"spec";a:1:{i:6;s:6:"紫色";}s:21:"spec_private_value_id";a:1:{i:6;s:11:"13842409023";}s:13:"spec_value_id";a:1:{i:6;s:2:"31";}}';
 
$v = preg_replace('@(i)\:(\d{8,12});@e',"intvalS('\\1',\\2)",$v);
 
echo '<pre>',print_r(unserialize($specval)),'</pre>';
 
?>
(责任编辑:VCPHP网站模板)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
验证码: 点击我更换图片
栏目列表
推荐内容
  • php怎么截取中文字符串

    在php中截取字符串最简单的办法就是利用substr()函数来实现,但是substr函数只能截取英文,如果是...

  • PHP如何读取COOKIES

    察看浏览器的 Cookies 让我们来看看保存在浏览器中的内容,如果你用的是 IE5,在 windows 目录下有...

  • PHP自动更新新闻DIY

    我们浏览一些网站的时候,往往看到一些新闻是刚刚更新不久的,假如要是人工维护的话,那...

  • PHP循环之PHP基础入门教程

    在php中PHP循环包括有while,do while,for,foreach,each等等常用的PHP循环语句,下面我来总结一下我在学习...

  • php 乱码问题的解决方法

    近来接受BBT的培训,做一个投票系统,系统代码倒不是很难,但是我的时间主要花费在了研究字符...

  • PHP Global变量定义一些用法详解

    php对global变量的解析是:Global的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而...

 
QQ在线咨询
售前电话热线
400-083-8184
售前QQ客服