2012-11-07 26 views
2

快速的问题:如果我提交表单,像下面PHP如何处理重复的URL参数?

<form action='something.php'> 
    <input type='text' name='a' /> 
    <input type='text' name='a' /> 
</form> 

会是什么$ _GET [ '一']输出?

+0

PHP的默认处理程序抛出它,但手动评估'QUERY_STRING'可以恢复重复的参数。 – mario

+0

@itachi,如果我必须先安装服务器,则不需要!这只是一个在谈话中出现的问题,我想确保... – Rorchackh

+0

[设置PHP服务器]需要几秒钟的时间(http://php.net/manual/en/features。 commandline.webserver.php)。 – Quentin

回答

7

如果名字以[]结尾,它会给你一个数组,否则它会给你最后的结果。

+0

不一定是最后的结果。 AFAIK它取决于用户代理。 – PeeHaa

+0

@PeeHaa - 它没有。客户按表单中显示的顺序发送表单数据。一旦它碰到服务器,就没有UA差异。 – Quentin

2

$_GET['a']将是最后或第一个参数(我不记得)。

你有两个选择:

  1. 要么解析字符串你的自我

  2. 使用 “一[]” 作为名称(可以用GET和POST来完成两者)。这将触发PHP以数组形式填充$_GET['a']。但是,这种行为不是标准的,可能会给客户端javascripting带来问题。

用于解析,或者使用(GET)

$_SERVER['QUERY_STRING'] 

或(对于POST)

file_get_contents("php://input") 

php://input是一个流,其等效于请求的原始体数据。