Дещо корисне
А тепер зробімо щось корисне. Ми збираємось перевірити, який саме браузер
використовує відвідувач. Для цього ми перевіримо рядок, який відправляє
браузер як частину HTTP запиту. Ця інформація зберігається в
змінній. В PHP змінні завжди
починаються зі знака долара. Зараз нам цікава змінна
$_SERVER['HTTP_USER_AGENT'].
Зауваження:
$_SERVER - це спеціальна зарезервована змінна PHP, що
містить всю інформацію отриману від вебсервера. Її також називають
суперглобальною. Докладніша інформація є на сторінці
Суперглобальні змінні.
Давайте подивимось на значення цієї змінної:
Приклад #1 Друк змінної (елемент масива)
<?php
echo $_SERVER['HTTP_USER_AGENT'];
?>
Скрипт надрукує приблизно таке:
Mozilla/5.0 (Linux) Firefox/112.0
В PHP існує багато типів змінних. В
попередньому прикладі ми друкували елемент зі
змінної-масиву. Масиви можуть
бути дуже корисними.
$_SERVER є однією зі змінних, яку PHP автоматично
створює для вас. Довший список таких змінних можна проглянути в розділі
Зарезервовані змінні, або ж ви
можете роздрукувати весь їхній список, викликавши функцію
phpinfo(), яку ми вже використовували в попередньому
абзаці.
Можна вкладати декілька рядків коду всередині тегів PHP та створювати
невеликі блоки коду, що можуть робити більше, ніж простий виклик echo.
Наприклад, якщо ви хочете створити перевірку для Firefox, це можна зробити
так:
<?php
if (str_contains($_SERVER['HTTP_USER_AGENT'], 'Firefox')) {
echo 'Ви використовуєте Firefox.';
}
?>
Результат цього скрипта може бути таким:
Ви використовуєте Firefox.
Тут використовується кілька нових понять. По-перше, це вираз
if.
Якщо ви знайомі з базовим синтаксисом, що використовується в мові C, то цей
вираз буде для вас теж знайомим. В іншому випадку, вам ймовірно слід
підібрати підручник з PHP для початківців та прочитати перші кілька
розділів, або прочитати главу Довідник з PHP
даного посібника.
Друге поняття, яке ми ввели - це виклик функції
str_contains(). Функція str_contains()
вбудована в PHP, вона визначає наявність одного рядка всередині іншого. У
даному випадку ми шукаємо підрядок 'Firefox'
(т. зв.
needle, "голку") всередині значення змінної
$_SERVER['HTTP_USER_AGENT'] (у т. зв. haystack, "копиці
сіна"). І якщо підрядок буде знайдено, то функція поверне true. Якщо ні —
false
. Якщо ж вона повертає true
, вираз
if буде оцінено як true
(істина) та виконається код всередині {фігурних дужок}. А інакше код
запускатись не буде. Спробуйте створити аналогічні приклади, використовуючи
if,
else, та інші функції такі
як strtoupper() та strlen(). В даному
посібнику є ще багато прикладів, майже для кожної функції. Якщо ви не
впевнені як використовувати функції, то можна прочитати
як читати визначення функцій та
розділ про функції PHP.
Ми можемо піти ще далі та показати як можна входити і виходити з режиму PHP
навіть всередині виразу PHP:
Приклад #3 Змішаний код HTML та PHP
<?php
if (str_contains($_SERVER['HTTP_USER_AGENT'], 'Firefox')) {
?>
<h3>str_contains() повернула true</h3>
<p>Ви використовуєте Firefox</p>
<?php
} else {
?>
<h3>str_contains() повернула false</h3>
<p>Ви не використовуєте Firefox</p>
<?php
}
?>
<h3>str_contains() повернула true</h3>
<p>Ви використовуєте Firefox</p>
Замість того, щоб використовувати в PHP вираз echo для виведення чогось, ми
вийшли з режиму PHP та безпосередньо відправляємо код HTML. Тут дуже важливо
відзначити, що таким чином не змінюється логічна структура скрипта. У
підсумку лише один з блоків HTML буде відправлено в браузер, в залежності
від результату, поверненого функцією str_contains().
Іншими словами, це залежить від того, чи буде знайдено рядок
Firefox
.