我想知道在GET请求中是否有更简洁的方法来传递多个变量而不是以下内容:
http://www.mysite.com/somepage?tags[]=one&tags[]=two&tags[]=three
我考虑过以下事项:
http://www.mysite.com/somepage?tags=one,two,three
然后使用explode()
分隔它们。
想知道是否有人看过或使用过更好的解决方案?
答案 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友好(对于标签通常很有用),并且也不像逗号那样常用(考虑标记本身)。