Многие сайты используют параметры при формировании ссылок. Например, когда клиент в фильтре товаров интернет-магазина выбирает какой-то размер, то ссылка может измениться и включать в себя тот параметр, который пользователь указал в фильтре.
http://ваш_сайт/kataloh/ortopedychni-matratsy?product_size=80x190 см.
В ссылке выше вы можете увидеть параметр product_size, который указывается после основной части URL и знака вопроса. Он указывает на то, какой размер товара ищет покупатель в магазине. В данном случае, product_size является переменной (или ключом), а символы после знака равно – значением переменной (ключа).
Получение значения переменной с URL
Чтобы получить этот значение переменной из URL (параметр ключа), можно использовать следующий код:
<?php
if (isset($_GET['product_size'])) {
$selectedSize = urldecode($_GET['product_size']);
echo "Розмір товару: " . $selectedSize;
}
?>
Здесь:
- if (isset($_GET['product_size'])) – проверяет, установлен ли параметр 'product_size' в массиве $_GET. Если установлен – то возвращает true, если нет – false.
- $selectedSize = urldecode($_GET['product_size']) – декодирует значение параметра 'product_size' с использованием функции urldecode() и сохраняет результат в переменной $selectedSize. Функцию urldecode() мы используем потому, что в ссылке могут использоваться специальные символы. Например, вместо пробелов мы можем увидеть «%20», вместо кириллической буквы «с» – «%D1%81», а вместо кириллической буквы «м» – «%D0%BC». Поэтому чтобы получить «80x90 см.», а не «80x190%20%D1%81%D0%BC.», мы и используем функцию urldecode().
- echo "Розмір товару: " . $selectedSize – выводит сообщение с текстом "Розмір товару: " и значением переменной $selectedSize.
Если же в ссылке есть 2 параметра, то можно продублировать код, который мы рассмотрели ранее, добавив в него имя второго параметра. Например, если у нас есть ссылка такого вида:
http://ваш_сайт/kataloh/ortopedychni-matratsy?product_size=80x190 см.&product_weight=25 кг.
то для того чтобы получить значения параметров product_size и product_weight можно применить следующий код:
<?php
if (isset($_GET['product_size'])) {
$selectedSize = urldecode($_GET['product_size']);
echo "Розмір товару: " . $selectedSize;
}
if (isset($_GET['product_weight'])) {
$selectedWeight = urldecode($_GET['product_weight']);
echo "Вага товару: " . $selectedWeight;
}
?>
Получение всех параметров с URL
Если мы не знаем названий параметров, которые записаны в ссылке, то можно использовать код PHP, который считает абсолютно все ключи и их значения с URL.
<?php
foreach ($_GET as $key => $value) {
$decodedValue = urldecode($value);
echo "$key: $decodedValue<br>";
}
?>
Здесь:
- foreach ($_GET as $key => $value) – начинает цикл, который итерируется (проходит) через все элементы массива $_GET. В результате выполнения этого цикла переменная $key получает имя параметра, а переменная $value – его значение.
- $decodedValue = urldecode($value) – декодирует значение параметра с помощью функции urldecode().
- echo "$key: $decodedValue<br>" – выводит имя параметра и его декодированное значение с помощью echo. С помощью тега <br> вставляется перенос строки, чтобы каждый параметр отображался на новой строке.
