php序列化问题 20

<?php$array=array(array('a'=>'aa','b'=>'bb'),array('x'=>'xx','m'=>'mm'));$array2=arra... <?php
$array=array(array('a'=>'aa','b'=>'bb'),array('x'=>'xx','m'=>'mm'));
$array2=array(array(1,2,34,4),array(5,6,7,8));
$array3=array(array('a','b','c'),array('l','m','n'));

$arr=serialize($array);
$arr2=serialize($array2);
$arr3=serialize($array3);
print_r($arr);
echo '<hr>';
print_r($arr2);
echo '<hr>';
print_r($arr3);
?>
<form method="POST" action="2.php">
<input type="hidden" name="post_data" value="<?php echo $arr?>" />
<input type="hidden" name="post_data2" value="<?php echo $arr2?>">
<input type="hidden" name="post_data3" value="<?php echo $arr3?>">
<input type="submit" />
</form>
在2.php文件中打印$_POST为什么,序列化的长度不一样,只有数组元素为int类型的的$arr2 和前面页面打印的内容一样,其他两个都很短,与前面的不一样,而且不能进行反序列化?这是为什么?
展开
 我来答
百度网友ac1d7c2fe84
2010-01-22 · TA获得超过100个赞
知道答主
回答量:33
采纳率:0%
帮助的人:35.6万
展开全部
你这样不叫序列化呀。我告诉你如何传阵列的一种方法,也不是用序列化方法,但是在传短小的阵列的时候是可以用的。
<input type="hidden" name="post_data[0][a]" value="<?php echo $arr[0][a]?>" />
<input type="hidden" name="post_data[0][b]" value="<?php echo $arr[0][b]?>" />
<input type="hidden" name="post_data[1][x]" value="<?php echo $arr[1][x]?>" />
<input type="hidden" name="post_data[1][y]" value="<?php echo $arr[1][y]?>" />
314uestc
2010-01-23 · TA获得超过141个赞
知道答主
回答量:57
采纳率:100%
帮助的人:0
展开全部
楼上的解决方法固然可以,不过未免过于繁杂。
其实楼主你有没有注意到这个问题,你输出的$array变量的序列化结果$arr中包含html的组成字符双引号,需要转义为"这就是问题所在,所以你在输出前,用htmlentities或者htmlspecialchars函数处理一遍就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pgmy
2010-01-28 · 超过19用户采纳过TA的回答
知道答主
回答量:139
采纳率:0%
帮助的人:48.6万
展开全部
因为你序列化后的数据里有 双引号。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式