2011-12-08 63 views
0

如何解析當前url以從中獲取所有GET變量。雖然有一個功能的名稱解析URL以提取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循環中,並逐步建立了網址。我的意思是使用GET我必須看看是否爲我期望的每個變量設置了值,但是我想要的是獲取所有設置的GET變量的列表。我的ulr可以包含3-4個變量,這個變量可能不會一直設置。我不想檢查是否所有4都設置在任何時間點,我只想根據設置的參數篩選我的查詢。

回答

6

使用parse_str

例如

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

編輯:你可以使用它的反向朋友http_build_str反其道而行之

1

$HTTP_GET_VARS變量被標記爲過時,因爲新$_GET變量進行了介紹。這是你應該使用的。它包含來自關聯數組中查詢字符串的所有參數,例如$_GET['var1']將在您的情況下爲1。

如果要構建新的URL與所有GET參數,你可以遍歷他們,或者你可以只複製當前的查詢字符串:

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