Как передать параметры в get запросе php?

Пользователь

от gage , в категории: PHP , 2 года назад

Как передать параметры в get запросе php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от guillermo , 2 года назад

@gage GET параметры паредается в URL и в формате "domain.com?test=123&test2=321" все что после ? идут в формате ключ=значение и разделяются & символом, пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
echo '<a href="http://domain.com.php?test=123&test2=321>Сортировка</a>';

if ($_GET['test'] == '123') {
   // что то
}

if ($_GET['test2'] == '321') { 
   // что то 
}
// Все параметры можно увидеть в виде массива
var_dump($_GET); // Только GET параметры
var_dump($_REQUEST); // $_GET, $_POST и $_COOKIE


Имейте ввиду что некоторые браузеры имеют максимальную длинну GET параметров и желательно чтобы строка не превышала 2048 символов.

Рекомендую также оборачивать GET параметры urlencode и конвертировать специальные символы:

1
2
$userinput = "test";
echo '<a href="http://domain.com/test.php?t=est'urlencode($userinput), '">';

Пользователь

от aubree , год назад

@gage 

Чтобы передать параметры в GET-запросе в PHP, вы можете использовать функцию http_build_query(). Она принимает ассоциативный массив с параметрами и возвращает строку запроса, которую вы можете добавить к URL.


Например:

1
2
3
$params = array('name' => 'John', 'age' => 30);
$query = http_build_query($params);
$url = 'http://example.com/submit.php?' . $query;


Это создаст URL вида http://example.com/submit.php?name=John&age=30.


Вы также можете просто объединить массив с параметрами с помощью символа &, чтобы получить строку запроса:

1
2
$query = 'name=John&age=30';
$url = 'http://example.com/submit.php?' . $query;


В обоих случаях вы получите тот же результат.