【问题标题】:Passing multiple values for same GET variable in URL在 URL 中为同一个 GET 变量传递多个值
【发布时间】:2012-04-14 01:18:48
【问题描述】:

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

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

我曾想过以下几点:

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

然后使用explode()将它们分开。

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

【问题讨论】:

  • http:/who.cares/page.php?tags=lorem+ipsum+sit+dolor+amet 怎么样 .. 或模式重写:http://who.cares/tags/lorem+ipsum+sit+dolor+amet。使用urldecode() 并在' ' 上爆炸。
  • 您为什么要这样做?该机制有效;你发明的每一种机制都会有缺陷,但你只能靠自己了。
  • @twall: 如果它曾经被用作链接等,让它看起来对用户来说很好。

标签: php url parameters get


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    我会说使用tags[]=X&tags[]=Y 更安全。

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-04-14
          • 2021-06-01
          • 2018-06-09
          • 1970-01-01
          • 2014-05-11
          • 1970-01-01
          • 2022-01-06
          相关资源
          最近更新 更多