Дещо Корисне
Давайте тепер зробимо щось корисне. Ми збираємось перевірити який саме
браузер використовує відвідувач. Для цього ми перевіримо рядок, який
відправляє браузер як частину HTTP запита. Ця інформація зберігається в змінній. В PHP змінні завжди починаються
зі знака долара. Зараз нам цікава змінна
$_SERVER['HTTP_USER_AGENT'].
Зауваження:
$_SERVER - це спеціальна зарезервована змінна PHP, що
містить всю інформацію отриману від веб-сервера. Її також називають суперглобальною.
Детальніша інформація знаходиться на сторінці
суперглобальні змінні.
Ці спеціальні змінні з'явились в PHP починаючи з версії
» 4.1.0. Раніше, з цією метою
ми використовували масиви $HTTP_*_VARS,
такі як $HTTP_SERVER_VARS. Не дивлячись на те, що ці
масиви вже застарілі, вони до цих пір існують. (Прогляньте також зауваження
стосовно старого коду.)
Давайте подивимось на значення цієї змінної:
Приклад #1 Друк змінної (елемент масива)
<?php
echo $_SERVER['HTTP_USER_AGENT'];
?>
Скрипт надрукує приблизно таке:
Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
В PHP існує багато типів змінних.
В попередньому прикладі ми друкували елемент
Масива (Array).
Масиви можуть бути дуже корисними.
$_SERVER є однією зі змінних, яку PHP автоматично
створює для вас. Довший список таких змінних можна проглянути в розділі
Зарезервовані Змінні, або
ж ви можете роздрукувати весь їх список викликавши функцію
phpinfo(), яку ми вже використовували в попередньому розділі.
Можна вкладати декілька рядків коду всередині тегів PHP та створювати
невеликі блоки коду, що можуть робити більше, ніж простий виклик echo.
Наприклад, якщо ви хочете створити перевірку для Internet Explorer,
це можна зробити так:
<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'Trident') !== FALSE) {
echo 'Ви використовуєте Internet Explorer.<br />';
}
?>
Видача цього скрипта може бути такою:
Ви використовуєте Internet Explorer.<br />
Тут використовується кілька нових понять. По-перше, це вираз
if.
Якщо ви знайомі з базовим синтаксисом, що використовується в мові C,
то цей вираз буде для вас теж знайомим. В іншому випадку, вам ймовірно
слід підібрати книгу по PHP для початківців та прочитати перші кілька
розділів, або прочитати главу Довідник
для PHP даного посібника.
Друге поняття, яке ми ввели - це виклик функції strpos().
Дана функція вбудована в PHP, вона шукає підрядок
(частину рядка) в наданому рядку. В даному випадку ми шукаємо підрядок
'Trident' всередині значення змінної
$_SERVER['HTTP_USER_AGENT']. І якщо підрядок буде знайдено,
то функція поверне його положення відносно початку рядка. В противному
разі, вона поверне FALSE
(хибний). Якщо ж вона не повертає FALSE
, вираз if буде оцінено як TRUE
(дійсний), та
виконається код всередині {фігурних дужок}. В противному разі, код запускатись
не буде. Спробуйте створити аналогічні приклади,
використовуючи if,
else, та інші функції такі
як strtoupper() та
strlen(). В даному посібнику є ще багато прикладів, майже
по кожній функції. Якщо ви не впевнені як використовувати функції, то можна
прочитати сторінки як читати визначення
функцій та розділ про
функції PHP.
Ми можемо підти ще далі та показати як можна входити і виходити з режиму
PHP навіть всередині виразу PHP:
Приклад #3 Змішаний код HTML та PHP
<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'Trident') !== FALSE) {
?>
<h3>strpos() повернула не false</h3>
<p>Ви використовуєте Internet Explorer</p>
<?php
} else {
?>
<h3>strpos() повертає false</h3>
<p>Ви не використовуєте Internet Explorer</p>
<?php
}
?>
<h3>strpos() повернула не false</h3>
<p>Ви використовуєте Internet Explorer</p>
Замість того, щоб використовувати в PHP вираз echo для виведення чогось, ми
вийшли з режиму PHP та безпосередньо відправляємо код HTML. Тут дуже важливо
відзначити, що таким чином не змінюється логічна структура скрипта. В кінцевому
підсумку лише один з блоків HTML буде відправлено в браузер, в залежності від
результата поверненого функцією strpos(). Іншими словами,
це залежить від того, чи буде знайдено рядок Trident, чи ні.