2010-03-30 23 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