在URL中传递相同GET变量的多个值

时间:2012-03-30 10:51:26

标签: php url parameters get

我想知道在GET请求中是否有更简洁的方法来传递多个变量而不是以下内容:

http://www.mysite.com/somepage?tags[]=one&tags[]=two&tags[]=three

我考虑过以下事项:

http://www.mysite.com/somepage?tags=one,two,three

然后使用explode()分隔它们。

想知道是否有人看过或使用过更好的解决方案?

4 个答案:

答案 0 :(得分:3)

使用explode()只有在每个标记的值从不包含您正在爆炸的任何字符串(在本例中为“,”)时才可靠。

我认为使用tags[]=X&tags[]=Y更安全。

答案 1 :(得分:1)

你可以urlencode(json_encode(yourData)),然后在服务器上json_decode

此解决方案适用于您可能需要传递的任何复杂数据,而不仅仅是您在此处使用的简单数据。

答案 2 :(得分:0)

我认为最好的解决方案是使用json_encode()。但是如果你想看起来不错(作为单个字符串)。您可以将代码看起来像page?tags=HuH&ITBHjYF86588gmjkbkb。最简单的是

$tags = base64_encode(json_encode($tags_array));

答案 3 :(得分:0)

我建议使用mod_rewrite重写,如www.website.com/tags/tag1-tag2-tag3,或者如果你只想使用php www.website.com/tags.php?tags=tag1-tag2-tag3。使用' - '使其对searchengine友好(对于标签通常很有用),并且也不像逗号那样常用(考虑标记本身)。