我需要从网址获取ID:
http://www.aaaaa/galery.php?position=kosice&kategory=Castles&ID=1&ID=5&ID=24&ID=32
如果我使用$_GET['ID']
仍然只获取最后一个ID值。我需要将它们全部放到数组中,或者选择。
任何人都可以帮助我吗?
答案 0 :(得分:6)
使用数组语法:
http://www.aaaaa/galery.php?position=kosice&kategory=Castles&ID[]=1&ID[]=5&ID[]=24&ID[]=32
var_dump($_GET['ID']);
array(4) {
[0]=>
int(1)
[1]=>
int(5)
[2]=>
int(24)
[3]=>
int(32)
}
}
echo $_GET['ID'][2]; // 24
答案 1 :(得分:5)
网址格式错误。第二个“ID”覆盖第一个“ID”..使用数组:
http://www.example.org/?id[]=1&id[]=2&id[]=3
在PHP中:
echo $_GET['id'][0]; // 1
echo $_GET['id'][1]; // 2
echo $_GET['id'][2]; // 3
答案 2 :(得分:1)
要实现此目的,您需要将ID作为数组并将其传递到URL
http://www.aaaaa/galery.php?position=kosice&kategory=Castles&ID[]=1&ID[]=5&ID[]=24&ID[]=32 这可以像后面这样在后端进行操作
$urls = $_GET['ID'];
foreach($urls as $url){
echo $url;
}
或强>
另一种方法是传递json编码数组
http://www.aaaaa/galery.php?position=kosice&kategory=Castles&ID=[1,2,24,32]
可以用作
$myarr = json_decode($_GET['ID']); // array(1,2,24,32)
我建议你在这里也看到这个。 http_build_query()
答案 3 :(得分:0)
这是错的,但如果你真的想这样做
<?php
function getIds($string){
$string = preg_match_all("/[ID]+[=]+[0-9]/i", $string, $matches);
$ids = [];
foreach($matches[0] as $match)
{
$c = explode("=", $match);
$ids [] = $c[1];
}
return $ids;
}
// you can change this with $_SERVER['QUERY_STRING']
$url = "http://www.aaaaa/galery.php?position=kosice&kategory=Castles&ID=1&ID=5&ID=24&ID=32";
$ids = getIds($url);
var_dump($ids);