在PHP中从url获取VALUES

时间:2014-12-10 16:12:58

标签: php get

我需要从网址获取ID:

http://www.aaaaa/galery.php?position=kosice&kategory=Castles&ID=1&ID=5&ID=24&ID=32

如果我使用$_GET['ID']仍然只获取最后一个ID值。我需要将它们全部放到数组中,或者选择。

任何人都可以帮助我吗?

4 个答案:

答案 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);