从url PHP读取多个参数

从url PHP读取多个参数,php,Php,我有一个链接mydomain.com/somefile.php?data=1&data=2&data=3。我想从URL中提取所有三个数据。我使用了以下代码:- echo $_GET['data']." ".$_GET['data']." ".$_GET['data']; 代码的输出为:- 3 3 3 但我想要以下输出:- 1 2 3 如何进行?任何帮助都将不胜感激 请…不要将此问题标记为重复。。。这与前一个不同,我无法更改URL,您不能这样做。如果传递一个简单的参数,PHP将只获取最后的数

我有一个链接mydomain.com/somefile.php?data=1&data=2&data=3。我想从URL中提取所有三个数据。我使用了以下代码:-

echo $_GET['data']." ".$_GET['data']." ".$_GET['data'];
代码的输出为:-

3 3 3
但我想要以下输出:-

1 2 3
如何进行?任何帮助都将不胜感激
请…不要将此问题标记为重复。。。这与前一个不同,我无法更改URL,您不能这样做。如果传递一个简单的参数,PHP将只获取最后的数据。但是,可以使用以下语法通过URL传递数组:

?data[]=1&data[]=2&data[]=3

php:
var_dump($_GET['data']);
编辑 嗯,你不喜欢我的第一个答案,正如我从这次否决票中看到的。。。因此,为了挽回我的信誉,我建议您通过直接解析查询字符串来实现以下解决方案:

<?php

$qstring = $_SERVER['QUERY_STRING']; // "data=1&data=2&data=3" here
$args = explode('&', $qstring);

$data = array();

for ($i = 0; $i < count($args); $i++) { 
    $param = explode('=', $args[$i]);

    // If the key hasn't been seen yet, add a new array to data collection 
    if(empty($data[$param[0]])) 
        $data[$param[0]] = array();

    // If there's a value given (we can have case like "data=1&test" for example)
    if(!empty($param[1]))
        $data[$param[0]][] = $param[1];
}

print_r($data);
/*
    Array
    (
        [data] => Array
            (
                [0] => 1
                [1] => 2
                [2] => 3
            )

    )
*/
然后你可以做:

<?php echo $data['data'][0].' '.$data['data'][1].' '.$data['data'][2]; ?>

希望这次我能帮助您。

请不要将此问题标记为重复问题。。。这与前一个不同,我无法更改URL如果您无法更改URL,PHP将无法为您解析查询字符串。您需要手动解析查询字符串:谢谢@DCoder它帮助了meMaxime,问题是我从插件获得了URL,我无法更改URL,因此您不能在PHP中执行此操作,或者您必须自己直接解析URL。签入$\u服务器变量我认为它是$\u服务器['PHP\u SELF']