2

我需要知道如何从请求的 url 中获取 $_GET 参数。如果我使用例如

$url = $_SERVER['REQUEST_URI'];
$parse_url = parse_url($url, PHP_URL_QUERY);

echo $parse_url;将输出 query=1,但我只需要参数而不是参数 AND 值来检查参数是否在数组中。

4

4 回答 4

2

根据您的示例,简单地爆炸=可能会很快满足您的需要。

$url = $_SERVER['REQUEST_URI'];
$parse_url = parse_url($url, PHP_URL_QUERY);
$queryparam = explode("=", $parse_url);
echo $queryparam[0];
/* OUTPUT query */

if (in_array($queryparam[0], $array_of_params)){ ... }

但是你可以简单地实现这样的事情:

if (@$_GET["query"] != ""){ ... }
于 2019-12-14T11:11:10.723 回答
1

就像是:

// Example URL: http://somewhere.org?id=42&name=bob

// An array to store the parameters
$params = array();
parse_str($_SERVER['QUERY_STRING'], $params);

// Access what you need like this:
echo 'ID: ' .$params['id']; 
于 2019-12-14T10:53:39.410 回答
0

Arry $_GET 包含所有需要的信息。$ _SERVER ['REQUEST_URI'] 和 parse_url 不需要。例如,我有以下浏览器行:

http://localhost/php/test.php?par&query=1

让我们看看 $_GET 包含什么

echo '<pre>';
var_export($_GET);

输出

array (
  'par' => '',
  'query' => '1',
) 

使用 array_keys() 我得到所有的键。

$keys = array_keys($_GET);
var_export($keys);

输出:

array (
  0 => 'par',
  1 => 'query',
) 

我得到的第一个键(另见@bobble bubble 的评论)

echo $keys[0];  //par

或者

echo key($_GET);

使用 array_key_exists () 我可以检查密钥是否可用。

if(array_key_exists('query',$_GET)){
  echo 'query exists';
}
于 2019-12-14T13:25:28.807 回答
-1

您也可以使用basename()它,它返回 path 的尾随名称组件。例如:

$lastPart=explode("=",basename('http://yourdomain.com/path/query=1'));
echo $lastPart[0];

输出

query
于 2019-12-14T11:23:57.063 回答