PHP: передача GET между несколькими страницами - PullRequest
2 голосов
/ 30 марта 2010

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

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

Спасибо.

Ответы [ 2 ]

4 голосов
/ 30 марта 2010

Быстрая идея была бы:

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


И, как только вы получите новую строку запроса, это просто вопрос объединения:

  • Новый URL без строки запроса
  • Символ ?
  • Новая строка запроса

И вот вы здесь; -)

2 голосов
/ 30 марта 2010

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

Например: foo = test1 & bar = test2

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

$_SERVER['QUERY_STRING']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...