【问题标题】:How to get the second parameter out of URL (PHP)如何从 URL (PHP) 中获取第二个参数
【发布时间】:2016-03-28 01:58:46
【问题描述】:

谁能帮帮我。

我有一个这样的链接:

http://www.somesite.com/somepage.php?&validation=3545&validation=1431

但我想从第二次验证中获取 1431 作为变量。 我尝试使用它,但它不起作用:

$Validationcode2 = $_GET['validation=3545&validation'];

但我认为它不会那样工作。

【问题讨论】:

  • 参数名称应该是唯一的。你可以控制 URL 吗?
  • 您的意思是:http://www.somesite.com/somepage.php?validation=3545&validation=1431(删除了多余的 & 符号)
  • 不,每个验证都应该是唯一的 (validation1=3545&validation2=1431)
  • 或者使用数组validation[]=3545&validation[]=1431

标签: php variables url


【解决方案1】:

使用$_SERVER['QUERY_STRING'] 获取整个查询字符串。然后您可以应用正则表达式(尝试/[?&]validation=3545&validation=(\d*)/)来获得您正在寻找的值。

正则表达式演示:http://www.phpliveregex.com/p/e1L

$_SERVER 文档:http://php.net/manual/en/reserved.variables.server.php

【讨论】:

    【解决方案2】:

    你会希望 GET 参数是唯一的,所以不要有两个 validation 变量,假设这是一个错误:

    如果你知道名字,你可以像这样引用它:

    $second_param = $_GET["validation"];
    

    如果您总是想要第二个变量而不考虑名称,您可以这样做:

    $key_array = array_keys($_GET);
    $second_param = $_GET[$key_array[1]];
    

    【讨论】:

      【解决方案3】:

      使用 validation[] 结构肯定更好,但有趣的是它实际上可以打印 &validation=1431 的第二个参数

      $url = "http://www.somesite.com/somepage.php?&validation=3545&validation=1431";
      $parsed_url = parse_url($url);
      $query = $parsed_url['query'];
      parse_str($query,$parts);
      
      print_r(array('parts'=>$parts));
      

      打印出来

      Array(
          [parts] => Array(
              [validation] => 1431
          )
      )   
      

      【讨论】:

        猜你喜欢
        • 2021-12-10
        • 1970-01-01
        • 2011-11-23
        • 1970-01-01
        • 2012-06-18
        • 1970-01-01
        • 1970-01-01
        • 2010-09-26
        • 2017-03-17
        相关资源
        最近更新 更多