日期:2014-05-17  浏览次数:20466 次

php获取GET方式传入的全部变量名称与值

前言

这篇博客的需求是我需要将一个http请求例如127.0.0.1?a=123&b=456&c=789将所有的get参数取出来拼串到test.com后面,也就是最后理想的uri应该是test.com?a=123&b=456&c=789
两种方法可以实现,建议做之前先google,我就是没有google导致返工

$_SERVER["QUERY_STRING"]


简介

这是最简单的方法,可是大部分人可能不会太熟悉这个服务器变量,解释一下
$_SERVER["QUERY_STRING"] : 查询的字符串

代码

$base = "test.com";
$str = $_SERVER["QUERY_STRING"];
$uri = $base.$str;
echo $uri;

效果




$_GET数组for循环拼串


思路

大部分人遇到这种需求第一反应都应该是for循环GET数组,自己拼串吧,写个实现代码共享一下

代码

$str = "test.com?";
$count = count($_GET);
$i = 0;

foreach ($_GET as $key => $value) {
    if ($i == $count - 1) {
        $str .= $key . "=" . $value;
    } else {
        $str .= $key . "=" . $value . "&";
    }
    $i ++;
}

echo $str;

效果




比较

虽然效果相同,但是get参数多时,for循环的效率肯定低,所以用php写代码的时候尽量少自己造轮子,所以我更喜欢c,因此可以多动脑子,唉,php是傻瓜用的语言,不过确实方便!