2010-03-30 1 views
2

Я строю набор страниц, где у меня есть ряд переменных GET, и часто бывает полезно передавать его на следующую страницу. Это приводит к уродливому коду, где я должен иметь «если эта переменная $ _GET установлена, динамически добавьте ее в эту гиперссылку». Это, во многих смыслах, не проблема; но я подумал: «Должен быть лучший способ сделать это», я имею в виду, в конце концов, в основном все, что я хочу, это взять «?» и все после него и добавьте его к ссылкам на этой странице, казалось бы, это должно быть довольно просто (или, по крайней мере, возможно сделать в цикле for). Я попробовал поиск в Google, но ничего не смог найти, поэтому решил, что увижу, знает ли кто-нибудь из вас.PHP: передача GET между несколькими страницами

Почему бы не использовать СЕССИЯ? Потому что эти страницы должны быть закладок.

спасибо.

ответ

2

Эта переменная содержит параметры запроса. Вы можете передать их каждой ссылке на страницах.

например: Foo = test1 & бар = test2

предварять? и все готово.

$_SERVER['QUERY_STRING'] 
4

Быстрая идея будет заключаться в следующем:

  • использования parse_url для извлечения параметров из текущего URL в массив
    • или непосредственно использовать $_GET, который уже содержит эти параметры
  • использование array_merge, слиться:
    • Списка существующих параметров (смотрите предыдущий пункт)
    • Список новых параметров
  • использование http_build_query построить новую строку запроса
    • Обратите внимание, что вам может потребоваться указать третий параметр: по умолчанию он будет равен & - что не всегда то, что вам нужно, в зависимости от вида продукции вы генерируете


И, как только у вас есть новый запрос-строка, это просто вопрос конкатенации:

  • новый URL, без какой-либо строки запроса
  • ? характера
  • новой строки запроса

И вот вы :-)

+0

+1, я удалил свой ответ, так как ваш ответ - гораздо лучшая идея, чем моя. Я не мог больше согласиться с вашим ответом. –

+0

@Anthony Спасибо :-) –

+0

Когда я увидел ответ с foreach (теперь удаленный), мне было глупо спрашивать (не знаю, почему использование foreach на $ _GET мне никогда не приходило в голову). Но поскольку я спросил, что мне нужно узнать о http_build_query, так что спасибо за это. – aterimperator