2010-06-03 68 views
5

如何創建只添加或更改的鏈接1 GET var同時保留所有其他鏈接?最好的方法添加/更改1 GET值,同時保持其他人?

我有一個使用不同的GET變量創建的頁面。

所以它會像mypage.php?color=red&size=7&brand=some%20brand

所以我想有它設置爲頁面= 2或大小= 8的鏈接。有什麼最簡單的方法來鏈接做到這一點,而不重置所有其他變量?

我希望是有道理的,讓我知道如果我需要進一步解釋什麼

回答

7

可以解析URL與parse_str得到URL的值。然後,您可以通過使用http_build_query建立一個HTTP查詢:

$query_arr = $_GET; //or parse_str($_SERVER['QUERY_STRING'], $query_arr) 
$query_arr["page"] = 2; 
$query_arr["size"] = 8; 

$query = http_build_query($query_arr); 

編輯:對不起,我混合了兩種功能...它當然parse_str()

+0

嗨,這「看起來」正是我所需要的。不過,我不認爲parse_query是一個內置的PHP函數。我嘗試用parse_url替換它,但這只是給了我一個url的不同部分(例如方案,主機,路徑等)的數組。 – 2010-06-03 14:56:36

+0

好吧我得到它的工作使用您的代碼,但改變行1和2只是$ query_arr = $ _GET – 2010-06-03 15:03:33

+0

是啊...對不起,請參閱編輯 – Simon 2010-06-03 15:07:40

4
+0

另外,parse_str。使用parse_star將查詢字符串解析爲數組,只更改您認爲必要的鍵,然後將數組提供給http_build_query。我已經成功地使用了這種技術。 – 2010-06-03 14:43:26

+2

@Frank時間學習$ _GET數組,朋友:) – 2010-06-03 14:49:20

+0

@Shrapnel:有時你想操縱一個URL,而不是當前請求的頁面。例如,我使用上述技術將Google Analytics分析跟蹤代碼添加到html電子郵件中的每個網址。 – 2010-06-03 21:54:47

相關問題