Сохранение переменных GET от 1 страницы до анонтера

Проблема в том, что я хочу сохранить поисковые переменные, которые я использовал с формой GET при перемещении по страницам. Это то же самое, что делает Google, когда вы что-то ищете, а затем вы хотите искать изображения, вы просто нажимаете на изображения и вам не нужно заменять поиск. Я видел, что ссылка на их изображения или другой вид поиска уже имеет строку GET в URL при создании страницы. Так есть переменная, которая содержит все, начиная от строки URL, и я могу положить его обратно в href на следующую страницу.

Пример: мой текущий URL: localhost/index.php?name=Johnи у меня есть ссылка на другую страницу, скажем, edit.php Было бы полезно поместить код, как эхо 'edit.php?'.$GET_var.'; и это эхо edit.php?name=John

РЕДАКТИРОВАТЬ: я, вероятно, буду использовать $string = http_build_query($_GET);Но другая вещь будет получить часть с index.php, Так что, если я на этой странице (index.php), если ссылка на эту страницу должна быть index.php и другие ссылки имеют аргументы?query

4 ответа

Решение

Ты можешь попробовать это

// suppose your url is index.php?name=john&city=jordan

$arr_temp = array();
foreach($_GET as $key=>$val)
{
   $arr_temp[] = $key."=".$val; // name=john or city=jordan into arr_temp array
}

$params = implode("&", $arr_temp); // implode with & name=john&city=jordan

echo 'edit.php?'.$params; // combine params to new link

ОБНОВЛЕНИЕ 2:

$params = $_SERVER['QUERY_STRING'];
echo 'edit.php?'.$params;

Я бы порекомендовал использовать встроенный parse_url,

$url ="http://localhost/index.php?name=John";
$result = parse_url($url);
$newUrl = 'http://localhost/index.php?' . $result['query'];

Или, может быть, немного чище, используя аргумент компонента parse_url:

$url ="http://localhost/index.php?name=John";
$query = parse_url($url, PHP_URL_QUERY);
$newUrl = 'http://localhost/index.php?' . $query;

Читайте о parse_url.

Для перемещения переменных $_GET с одной страницы на другую с помощью php, вы можете использовать функцию htt_build_query как

$string = http_build_query($_GET);

Добавьте эту строку $ к вашему URL, т.е. строку YOUR_URL?$

$_SERVER['QUERY_STRING'] содержит ваши переменные GET. Вы также можете посмотреть на phpinfo(), чтобы увидеть, что еще у вас есть.

Другие вопросы по тегам