Sha*_*512 6 php arrays serialization deserialization
我试图通过html格式的输入字段传递数组.使用序列化传递它然后反序列化再次读取数组.我有多个输入字段.
$test = array('name' => 'Sander', 'type' => 'melon');
echo '<input type="hidden" name="rank[]" value="'.serialize($test).'" >';
Run Code Online (Sandbox Code Playgroud)
然后,如果我想反序列化并显示数据,则会出错:
$list = $_POST['rank'];
var_dump($list);
var_dump(unserialize($list[0]));
Run Code Online (Sandbox Code Playgroud)

我不使用序列化,而是使用 urlencode() 和 urldecode()。
将数组更改为不同的格式。
$info = 'name=Sander&type=melon';
echo '<input type="hidden" name="rank[]" value="'.urlencode($info).'" >';
Run Code Online (Sandbox Code Playgroud)
然后我可以简单地显示这样的值:
if(!empty($_POST['rank'])){
$list = $_POST['rank'];
$listSize = count($list);
for($i=0;$i<$listSize;$i++){
parse_str(urldecode($list[$i]), $output);
var_dump($output);
}
}
Run Code Online (Sandbox Code Playgroud)
问题解决了:)