在php中将表单值转换为数组

时间:2009-12-17 20:24:09

标签: php

是否可以将表单字段值转换为数组? EX:

 <?php

   array('one', 'two', 'three');    
    ?>

    <form method="post" action="test.php">
        <input type="hidden" name="test1" value="one" />
        <input type="hidden" name="test2" value="two" />
        <input type="hidden" name="test3" value="three" />
        <input type="submit" value="Test Me" />
    </form>

因此可以将所有表单值传递给php中的数组吗?

3 个答案:

答案 0 :(得分:11)

已经完成了。

查看$_POST数组。

如果你做了print_r($_POST);,你会发现它是一个数组。

如果您只需要值而不是密钥,请使用

$values = array_values($_POST);

http://php.net/manual/en/reserved.variables.post.php

答案 1 :(得分:11)

是的,只需将输入命名为相同的内容,并在每个输入后放置括号:

<form method="post" action="test.php">
        <input type="hidden" name="test[]" value="one" />
        <input type="hidden" name="test[]" value="two" />
        <input type="hidden" name="test[]" value="three" />
        <input type="submit" value="Test Me" />
</form>

然后你可以用

进行测试
<?php
print_r($_POST['test']);
?>

答案 2 :(得分:5)

这实际上是PHP的设计方式,也是早期在网络编程中实现大规模市场渗透的原因之一。

当您向PHP脚本提交表单时,所有表单数据都会被放入可随时访问的超全局数组中。例如,提交您在问题中提交的表单:

<form method="post" action="test.php">
    <input type="hidden" name="test1" value="one" />
    <input type="hidden" name="test2" value="two" />
    <input type="hidden" name="test3" value="three" />
    <input type="submit" value="Test Me" />
</form>

意味着在test.php内,您将拥有一个名为$_POST的超全局,它将被预先填充,就像您使用表单数据创建它一样,基本如下:

$_POST = array('test1'=>'one','test2'=>'two','test3'=>'three');

POST和GET请求都有超级全局,即。 $_POST$_GET。有一个用于Cookie数据$_COOKIE。还有$_REQUEST,其中包含这三者的组合。

有关详细信息,请参阅doc page on Superglobals