【问题标题】:how to get all variables from page url in php如何从php中的页面url获取所有变量
【发布时间】:2020-05-03 20:49:47
【问题描述】:

我有一个这样的 php 代码

<?php 
  if(isset($_GET['qry'])) {

   echo $_GET['qry']; 

  }else if(isset($_GET['ct'])) {

   echo $_GET['ct']; 

  } else if(isset($_GET['sct'])) {

   echo $_GET['sct']; 

  } else if(isset($_GET['brand'])) {

   echo $_GET['brand']; 

  } else {

   echo "";

} ?>

这里发生的事情是我想从 url 中的变量中获取值,但是它们在同一页面上有所不同。所以请有一种更简单的方法来做到这一点,即从变量中获取所有值并将其分配给我的代码中的一个变量,而无需在页面中输入所有变量,例如

例如

$allVariables = $_GET['get all variables'];

if($allVariables == '1'){ 

//do this

}

OR

if($allVariables == '2') {

// do this

}

请问有办法吗

【问题讨论】:

  • stackoverflow.com/a/5884896/7698734 这回答了你的问题
  • 哎呀!这让我想起了 register_globals... 不鼓励这样做是有原因的
  • @brightcode 这个问题的状态是什么?我的回答解决了吗?
  • @compuphys 真的很遗憾没有提供有关此的反馈,但它没有用。因为我想知道的是,如果有可能同时在同一个 url 中获取多个变量
  • @brightcode 这是可能的,我的回答告诉你。 $_GET 返回通过 URL 传递的所有参数。如果您的 URL 是 www.somesite.com/index.php?var1=value1&amp;var2=value2,则 $_GET 是一个数组,其中包含值为 value1 的 var1 和值为 value2 的 var2。

标签: php url get


【解决方案1】:

$_GET 是 php 中 superglobal 的示例:

超全局变量是在所有范围内始终可用的内置变量。

特别是$_GET 是:

通过 URL 参数(又名查询字符串)传递给当前脚本的变量关联数组。

您可以使用null coalescing operator 一步来检查是否设置了$_GET 参数并设置一个等于其值的变量:

$var = $_GET['some_parameter'] ?? null

在这种情况下,$var 等于 $_GET['some_parameter'] 的值(如果存在),否则为 null。

~~~~~编辑~~~~~

正如 cmets 中所指出的,该运算符仅在 php 7.2.0 及更高版本中可用。要在版本 ternary operator:

$var= isset($_GET['some_parameter']) ? $_GET['some_parameter'] : null;

~~~~~~~~~~~~~~~


在您检查if($allVariables == '1'){//do this} 的代码中,如果您实际上是在尝试检查通过URL 传递的参数数量,您应该使用count() 函数。

if (count($_GET) == 1) {
  // do this
} else if (count($_GET) == 2) {
  // do this instead
}

...但这将是有限的用途,因为它不会告诉你任何关于 哪些 参数已被传递。

【讨论】:

  • 如果应该注意(在答案中)?? 运算符是 PHP 7+ 独有的。
  • 对 :) 现在,我只希望 OP 会接受您的回答,或者如果没有解决问题,请发表评论。他们的记录是“不确定的”,考虑到他们问我参与的其他问题并且没有对他们做任何事情或发表评论。也许他们认为我们已经变成了“千里眼”?呵呵。
  • 我知道这不是必需的,但是当您努力拉入 php 手动链接并给出详细解释以试图帮助人们但根本没有得到任何回应时,这绝对是令人沮丧的。
  • 对。我知道他们不必接受,但至少,他们可以通知给出答案的人并给他们空闲时间提供帮助,这很好:)
猜你喜欢
  • 2019-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-25
  • 2014-02-02
  • 1970-01-01
  • 2018-10-27
相关资源
最近更新 更多