Как может я добавлять ПОЛУЧИТЬ переменные к концу текущего URL в php?

Я пытаюсь добавить, что некоторые отличающиеся ПОЛУЧАЮТ переменные к URL.

Я мог легко сделать перенаправление заголовка к текущему URL страницы и затем просто добавить $ _GET ['тест'] в URL.

Моя проблема состоит в том, что я имею, некоторые ПОЛУЧАЮТ переменные, которые уже находятся в URL. То, что я хочу сделать:

  • Проверьте, существуют ли, любой ПОЛУЧАЕТ переменные в URL

    • Если нет, то перенаправьте к текущему URL с новым, ДОБИРАЮТСЯ ['тестируют'] переменную в конце URL.

    • Если существует, но существует, не ДОБИРАЮТСЯ ['тестируют'] переменную в URL, то сохраняют их другим ПОЛУЧАТЬ значения в URL и добавить ПОЛУЧИТЬ ['тест'] переменная к концу полной строки URL

    • Если существует, И существует ПОЛУЧИТЬ ['тест'] переменная в URL, то сохраните их другим ПОЛУЧАТЬ значения в URL и обменивайтесь ПОЛУЧИТЬ ['тест'] значение переменной с новым значением.

Как я могу пойти о проверке все эти условия?

22
задан zeckdude 2 July 2010 в 01:24
поделиться

2 ответа

Простой способ:

$params           = array_merge( $_GET, array( 'test' => 'testvalue' ) );
$new_query_string = http_build_query( $params );

Это не гарантирует, что тест будет в конце. Если по какой-то странной причине вам это нужно, вы можете просто сделать:

$params = $_GET;
unset( $params['test'] );
$params['test']   = 'testvalue';
$new_query_string = http_build_query( $params );

Обратите внимание, однако, что синтаксический анализ параметров строки запроса PHP может иметь некоторые проблемы взаимодействия с другими приложениями. В частности, PHP не принимает несколько значений для любого параметра, если у него нет имени, подобного массиву.

Затем вы можете просто перенаправить на

( empty( $_SERVER['HTTPS'] ) ? 'http://' : 'https://' ) .
( empty( $_SERVER['HTTP_HOST'] ) ? $defaultHost : $_SERVER['HTTP_HOST'] ) .
$_SERVER['REQUEST_URI'] . '?' . $new_query_string
38
ответ дан 29 November 2019 в 04:19
поделиться

..

$newval = 'whatever';
if( !count($_GET) ) {
 header('Location: ?test=' . $newval);
 exit;
}
if(!isset($_GET['test'])) {
 $_SERVER['REQUEST_URI'] .= '&test='.$newval;
}
$_GET['test'] = $newval;
0
ответ дан 29 November 2019 в 04:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: