【问题标题】:Get VALUES from url in PHP从 PHP 中的 url 获取 VALUES
【发布时间】:2015-02-08 22:14:42
【问题描述】:

我需要从 url 获取 ID:

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

如果我使用 $_GET['ID'] 仍然只能获得最后一个 ID 值。我需要将它们全部排列或选择。

有人可以帮我吗?

【问题讨论】:

  • @R.CanserYanbakan 他有 3 个不同的 ID,简单地使用 $_GET 并不能解决他的问题。
  • @Jordy 然后使用 $_SERVER['QUERY_STRING'] :)
  • 对我来说似乎不是一个有效的请求字符串,ID[]=1&ID[]=5 会有意义
  • 对变量使用不同的名称或使用带有数组的表单方法 post =)

标签: php get


【解决方案1】:

这是错误的,但如果你真的想这样做

<?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);

【讨论】:

    【解决方案2】:

    要获得这个,你需要将 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】:

      网址格式错误。第二个“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
      

      【讨论】:

        【解决方案4】:

        使用数组语法:

         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
        

        【讨论】:

        • 如果他不想在他的查询字符串中使用[](数组)怎么办?您也应该编写该解决方案。
        猜你喜欢
        • 2011-03-18
        • 2017-06-03
        • 2015-02-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多