2010-06-03 69 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

相关问题