我有一个链接mydomain.com/somefile.php?data=1&data=2&data=3。我想从URL中提取所有三个数据。我使用了以下代码: -
echo $_GET['data']." ".$_GET['data']." ".$_GET['data'];
代码的输出是: -
3 3 3
但我想要以下输出: -
1 2 3
如何进行?任何帮助将不胜感激 请...不要将此问题标记为重复...这与上一个不同,我无法更改网址
答案 0 :(得分:2)
你做不到。如果传递一个简单的参数,PHP将只采用最后的数据。但是,您可以使用以下语法通过URL传递数组:
?data[]=1&data[]=2&data[]=3
php:
var_dump($_GET['data']);
嗯,你不喜欢我的第一个答案,因为我可以通过这个downvote看到...所以为了赎回我的可信度,我建议你通过直接解析查询字符串来解决这个问题:
<?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]; ?>
希望这次能帮助你。