2

我正在尝试获取每个 URL 参数并从头到尾显示它们,但我希望能够在页面上的任何位置显示任何参数。我怎样才能做到这一点?我必须在我的脚本上添加或修改什么?

这是 URL 值的示例。

http://www.localhost.com/topics/index.php?cat=3&sub1=sub-1&sub2=sub-2&sub3=sub-3&sub4=sub-4

这是我的 PHP 脚本。

$url = $_SERVER['QUERY_STRING'];
$query = array();

if(!empty($url)){
  foreach(explode('&', $url) as $part){
    list($key, $value) = explode('=', $part, 2);
    $query[$key] = $value;
  }
}
4

4 回答 4

15

您不需要手动执行此操作,PHP 已经在 $_GET 全局变量中提供了此功能:

<?php
    foreach($_GET as $key => $value)
        echo $key . " : " . $value;
?>
于 2010-08-18T02:11:40.200 回答
2

如果是 GET 请求,那么所有参数都在 $_GET 中。表单 POST 将在 $_POST 中。两者都包含在 $_REQUEST 中。

于 2010-08-18T02:12:35.673 回答
0

你正在寻找$_GET超全球

 foreach ($_GET as $key => $value) {
    echo $key . ' -- ' . $value;
}

$_GET您可以使用此代码访问任何值,该代码$_GET['sub1']将返回sub-1

于 2010-08-18T02:11:46.967 回答
0

有一种更简单的方法可以做到这一点,而不是使用循环。使用内置函数 parse_str()。它将请求 uri 拆分为 key => value 对。例子:

$url = "cat=3&sub1=sub-1&sub2=sub-2&sub3=sub-3&sub4=sub-4";
$query = array();
parse_str( $url, $query );
print_r($query);
于 2010-08-18T02:36:32.503 回答