0

我需要一个 PHP 程序,它将从 HTML 链接(使用 GET)中获取所有值,无论地址栏中的内容有多少更改,然后在页面上打印出来。我现在的代码是这样的:

HTML:

<a href="test.php?a=value1&amp;b=value2& amp;c=value3">Link</a>

PHP:

<?php 

Echo "Value1: "; Echo $_GET["a"]; Echo "\n";
Echo "Value2: "; Echo $_GET["b"]; Echo "\n";
Echo "Value3: "; Echo $_GET ["c"];

?>

它仅适用于这些值,但它无法处理例如在地址栏中添加的另一个变量。我需要某种 PHP 函数,它可以通过 GET 函数查找各种变量。

任何帮助表示赞赏!

4

8 回答 8

2

使用循环(根据需要修改):

foreach ($_GET as $num => $value)
{
    echo 'Value ' . $num . ': ' . htmlentities($value). "<br>" . PHP_EOL;
}

参考:

于 2013-01-20T17:47:17.587 回答
1

您使用 print_r($GET) 获得所有 $_GET 值...

否则你可以这样

foreach(array_keys($_GET) as $key) {

echo htmlspecialchars($_GET[$key]);

}

后来编辑:考虑到评论中暴露的安全问题

使用这种方法很好,因为你知道你有什么样的变量,然后你可以做一些很酷的事情,比如:

if ($key == 'a') do this
if ($key == 'b' && $_GET[$key] == 'bar') do that
于 2013-01-20T17:47:39.307 回答
1
<?php
    print_r($_GET);
?>
于 2013-01-20T17:48:12.613 回答
1

像这样的东西:

<?php
foreach ($_GET as $key => $value) {
  echo htmlspecialchars($key) . " - " . htmlspecialchars($value) . "<br>";
}
?>
于 2013-01-20T17:48:12.503 回答
1

使用 foreach 循环

foreach ($_GET as $key => $val){
  echo htmlentities($key).": ".htmlentities($val)."<br />\n";
 }

或者干脆——

echo "<pre>".print_r($_GET,1)."</pre>";
于 2013-01-20T17:48:43.170 回答
1

要获取所有值及其对应的名称:

foreach($_GET as $key => $value)
{
     echo $key . ' - ' . $value;
}
于 2013-01-20T17:49:21.110 回答
1
$my_get = array(); // store $_GET vars

if ('GET' == $_SERVER['REQUEST_METHOD']) // check that request method is "get"
    foreach ($_GET as $key => $val)
    {
        $my_get[$key] = $val; // store
    }

输出 $my_get:

array (
  'a' => 'value1',
  'b' => 'value2',
  'c' => 'value3',
)
于 2013-01-20T17:49:36.183 回答
1

由于 $_GET 只是一个数组,因此您可以使用 for 每个循环来获取它的元素。

于 2013-01-20T17:52:48.460 回答