解析URL以提取URL中的所有GET变量

时间:2011-12-08 06:30:18

标签: php url get

如何解析当前url以从中获取所有GET变量。虽然有一个名称为

的功能
HTTP_GET_VARS

但文档说它已弃用,所以我不想使用它。如果我有一个网址

,我想做这样的事情
www.example.com/variables.php?var1=1&var2=2&var3=3

我想在数组变量中提取所有GET变量,这样我就可以使用变量的名称以及它在url中的值,以便我可以在构建不同的URL时使用它们

www.example.com/new_variables.php?vars[var_name]=vars[var_value]

我可以遍历for循环中的所有变量并逐步构建url。我的意思是使用GET我必须查看是否为我期望的每个变量设置了值,但我想要的是获取所有设置的GET变量的列表。我的ulr可以包含3-4个变量,可能不会一直设置。我不想检查是否所有4都设置在任何时间点,我只想根据设置的参数筛选我的查询。

2 个答案:

答案 0 :(得分:6)

使用parse_str

e.g。

parse_str($_SERVER['QUERY_STRING'], $output);

编辑:您可以使用其反向朋友http_build_str执行相反的操作

答案 1 :(得分:1)

$HTTP_GET_VARS变量被标记为已弃用,因为引入了较新的$_GET变量。这是你应该使用的那个。它包含关联数组中查询字符串的所有参数,例如:在你的情况下,$_GET['var1']将是1。

如果你想用所有GET参数构造新的URL,你可以循环它们,或者你可以只复制当前的查询字符串:

$new_url = "new_variables.php?" . $_SERVER['QUERY_STRING'];