联系电话:0755-27515592
最新动态:

PHP教程

你的位置: 首页>>智慧亿恩>>PHP教程

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

点击数:14672015-07-22 14:40:32 来源: 外贸网站建设,深圳外贸网站建设,深圳网站建设,外贸商城网站制作-亿恩科技

新闻摘要: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>';
 
?>
【责任编辑:(Top) 返回页面顶端
贴心
全国7×24小时客服热线
安全
病毒杀除率高于99%
稳定
网站可用性高于99.9%
实力
服务68家上市企业及集团公司
亿恩科技手机站
关注亿恩科技微信

亿恩科技—企业信息化一站式服务专家


Copyright © 2008- 深圳市亿恩科技有限公司版权所有 粤ICP备15056041号

联系我们 | 常见问题 | 在线留言 | 支付方式 | 软件开发 | 我的观点 | 资质荣誉 | 服务流程