Я пытаюсь добавить, что некоторые отличающиеся ПОЛУЧАЮТ переменные к URL.
Я мог легко сделать перенаправление заголовка к текущему URL страницы и затем просто добавить $ _GET ['тест'] в URL.
Моя проблема состоит в том, что я имею, некоторые ПОЛУЧАЮТ переменные, которые уже находятся в URL. То, что я хочу сделать:
Проверьте, существуют ли, любой ПОЛУЧАЕТ переменные в URL
Если нет, то перенаправьте к текущему URL с новым, ДОБИРАЮТСЯ ['тестируют'] переменную в конце URL.
Если существует, но существует, не ДОБИРАЮТСЯ ['тестируют'] переменную в URL, то сохраняют их другим ПОЛУЧАТЬ значения в URL и добавить ПОЛУЧИТЬ ['тест'] переменная к концу полной строки URL
Если существует, И существует ПОЛУЧИТЬ ['тест'] переменная в URL, то сохраните их другим ПОЛУЧАТЬ значения в URL и обменивайтесь ПОЛУЧИТЬ ['тест'] значение переменной с новым значением.
Как я могу пойти о проверке все эти условия?
Простой способ:
$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
..
$newval = 'whatever';
if( !count($_GET) ) {
header('Location: ?test=' . $newval);
exit;
}
if(!isset($_GET['test'])) {
$_SERVER['REQUEST_URI'] .= '&test='.$newval;
}
$_GET['test'] = $newval;