如何創建只添加或更改的鏈接1 GET var同時保留所有其他鏈接?最好的方法添加/更改1 GET值,同時保持其他人?
我有一個使用不同的GET變量創建的頁面。
所以它會像mypage.php?color=red&size=7&brand=some%20brand
所以我想有它設置爲頁面= 2或大小= 8的鏈接。有什麼最簡單的方法來鏈接做到這一點,而不重置所有其他變量?
我希望是有道理的,讓我知道如果我需要進一步解釋什麼
如何創建只添加或更改的鏈接1 GET var同時保留所有其他鏈接?最好的方法添加/更改1 GET值,同時保持其他人?
我有一個使用不同的GET變量創建的頁面。
所以它會像mypage.php?color=red&size=7&brand=some%20brand
所以我想有它設置爲頁面= 2或大小= 8的鏈接。有什麼最簡單的方法來鏈接做到這一點,而不重置所有其他變量?
我希望是有道理的,讓我知道如果我需要進一步解釋什麼
可以解析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()
。
另外,parse_str。使用parse_star將查詢字符串解析爲數組,只更改您認爲必要的鍵,然後將數組提供給http_build_query。我已經成功地使用了這種技術。 – 2010-06-03 14:43:26
@Frank時間學習$ _GET數組,朋友:) – 2010-06-03 14:49:20
@Shrapnel:有時你想操縱一個URL,而不是當前請求的頁面。例如,我使用上述技術將Google Analytics分析跟蹤代碼添加到html電子郵件中的每個網址。 – 2010-06-03 21:54:47
嗨,這「看起來」正是我所需要的。不過,我不認爲parse_query是一個內置的PHP函數。我嘗試用parse_url替換它,但這只是給了我一個url的不同部分(例如方案,主機,路徑等)的數組。 – 2010-06-03 14:56:36
好吧我得到它的工作使用您的代碼,但改變行1和2只是$ query_arr = $ _GET – 2010-06-03 15:03:33
是啊...對不起,請參閱編輯 – Simon 2010-06-03 15:07:40