📅  最后修改于: 2023-12-03 15:03:35.560000             🧑  作者: Mango
在 PHP 中,我们可以使用 post 方法来传输表单数据。但是如果表单数据中需要传输数组,我们该如何处理呢?下面将介绍如何在 PHP 中通过 post 方法传输数组。
在表单中,我们可以使用 []
来定义一个数组类型的表单元素。例如:
<form method="post" action="">
<input type="text" name="myArray[]" value="1">
<input type="text" name="myArray[]" value="2">
<input type="text" name="myArray[]" value="3">
<input type="submit" value="submit">
</form>
在提交表单之后,我们可以通过 $_POST['myArray']
来获取到这个数组。
除了使用表单的方式来传输数组,我们还可以使用 JSON 编码的方式来传输。例如:
$data = array('username' => 'admin', 'password' => '123456');
$json = json_encode($data);
$postdata = http_build_query(array('json' => $json));
$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $postdata
)
);
$context = stream_context_create($opts);
$result = file_get_contents('http://example.com/api', false, $context);
在服务端,我们可以通过 $_POST['json']
来获取到这个 JSON 数据,并使用 json_decode()
函数将其转换为数组。
除了 JSON 编码之外,我们还可以使用 serialize()
函数来传输数组。例如:
$data = array('username' => 'admin', 'password' => '123456');
$postdata = http_build_query(array('data' => serialize($data)));
$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $postdata
)
);
$context = stream_context_create($opts);
$result = file_get_contents('http://example.com/api', false, $context);
在服务端,我们可以通过 $_POST['data']
来获取到这个序列化后的数据,并使用 unserialize()
函数将其转换为数组。
以上就是在 PHP 中通过 post 方式传输数组的方法。我们可以使用表单、JSON 编码、以及 serialize() 函数来传输数组。在服务端,我们可以通过 $_POST
数组来获取到这个数组。