从url PHP读取多个参数
我有一个链接mydomain.com/somefile.php?data=1&data=2&data=3。我想从URL中提取所有三个数据。我使用了以下代码:-从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将只获取最后的数
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']