【问题标题】:How does PHP handle duplicated URL parameters? [closed]PHP 如何处理重复的 URL 参数? [关闭]
【发布时间】:2012-11-07 10:52:18
【问题描述】:

快速提问:如果我提交如下表格

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

$_GET['a'] 会输出什么?

【问题讨论】:

  • PHP 的默认处理程序将其丢弃,但手动评估 QUERY_STRING 可以恢复重复的参数。
  • @itachi,如果我必须先设置服务器,那就不行了!这只是在谈话过程中提出的一个问题,我想确定......
  • 这些天来set up a PHP server 需要几秒钟。

标签: php http get


【解决方案1】:

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

【讨论】:

  • 不一定是最后一个结果。 AFAIK 它取决于用户代理。
  • @PeeHaa — 没有。客户端按照表单中出现的顺序发送表单数据。一旦它到达服务器,就没有 UA 差异。
【解决方案2】:

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

你有两个选择:

  1. 自己解析字符串(GET 和 POST 都可以)

  2. 使用“a[]”作为名称。这将触发 PHP 将 $_GET['a'] 填充为数组。但是,这种行为不是标准的,可能会给您的客户端 javascripting 带来问题。

对于解析,要么使用(对于 GET)

 $_SERVER['QUERY_STRING'] 

或(用于 POST)

 file_get_contents("php://input")

php://input 是一个流,相当于请求的原始正文数据。

【讨论】:

    猜你喜欢
    • 2011-04-17
    • 1970-01-01
    • 2011-11-12
    • 2011-12-19
    • 1970-01-01
    • 2013-08-31
    • 2014-10-15
    • 2016-08-27
    • 2011-11-30
    相关资源
    最近更新 更多