2010-03-30 58 views
2

我正在构建一组页面,其中有许多GET变量,并且将它传递到下一页通常很有价值。这导致了丑陋的代码,我必须“如果这个$ _GET变量已设置,动态添加到这个超链接”。这在许多方面都不是问题;但我有这样的想法:“必须有更好的方法来做到这一点”,我的意思是,毕竟基本上我想要的是采取'?'以及它后面的所有内容并将其附加到该页面上的链接,看起来这应该相当简单(或者至少可以在for循环中执行)。我试图谷歌搜索,但无法找到任何东西,所以我想我会看到你是否有谁碰巧知道。PHP:在多个页面之间传递GET

为什么不使用SESSION?因为这些网页需要能够加入书签。

谢谢。

回答

2

此变量包含请求参数。您可以将这些传递给页面上的每个链接。

例如:富= TEST1 &巴= TEST2

前置的?你就完成了。

$_SERVER['QUERY_STRING'] 
4

快速想法是:

  • 使用parse_url从当前URL的参数中提取到一个数组
    • 或直接使用$_GET,其中已包含这些参数
  • 使用array_merge,合并:
    • 现有参数名单(见前面的点)
    • 的新参数
  • 使用http_build_query建立新的查询字符串列表
    • 注意,您可能必须指定第三个参数:默认情况下,它将等于& - 这并不总是你需要什么,这取决于类型的输出要生成


而且,一旦你有你的新的查询字符串,它是串联的只是事情:

  • 新的URL,没有任何查询字符串
  • ?字符
  • 新的查询字符串

在这里您是;-)

+0

+1,我删除了我的答案,因为你的答案比我的答案好得多。我完全同意你的回应。 – 2010-03-30 18:42:50

+0

@Anthony谢谢:-) – 2010-03-30 18:45:13

+0

当我看到foreach(现在删除)的答案时,我觉得很蠢(因为我从来没有想过为什么在$ _GET上使用foreach)。但是因为我问了我需要了解http_build_query,所以非常感谢。 – aterimperator 2010-03-30 18:48:58