Багато сайтів використовують параметри при формуванні посилань. Наприклад, коли клієнт у фільтрі товарів інтернет-магазину вибирає якийсь розмір, то посилання може змінитися і включати в себе той параметр, який користувач вказав у фільтрі.
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> вставляється перенос рядка, щоб кожен параметр відображався на новому рядку.
