📜  php pasar 数组 por post - PHP (1)

📅  最后修改于: 2023-12-03 15:03:35.560000             🧑  作者: Mango

在 PHP 中通过 post 方式传输数组

在 PHP 中,我们可以使用 post 方法来传输表单数据。但是如果表单数据中需要传输数组,我们该如何处理呢?下面将介绍如何在 PHP 中通过 post 方法传输数组。

使用 form 表单传输数组

在表单中,我们可以使用 [] 来定义一个数组类型的表单元素。例如:

<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 编码传输数组

除了使用表单的方式来传输数组,我们还可以使用 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() 函数将其转换为数组。

使用 serialize() 函数传输数组

除了 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 数组来获取到这个数组。