Coś użytecznego
Zróbmy teraz coś bardziej przydatnego. Sprawdzimy jakiego
rodzaju przeglądarki używa odwiedzający.
W tym celu sprawdzimy łańcuch znaków nazywany user agentem,
który przeglądarka wysyła jako część zapytania HTTP. Ta informacja jest
trzymana w zmiennej. Zmienne w PHP zawsze zaczynają
się od znaku dolara. Zmienna która interesuje nas w tej chwili
to $_SERVER['HTTP_USER_AGENT'].
Informacja:
$_SERVER to specjalna zastrzeżona
zmienna PHP, która zawiera wszystkie informacje o serwerze WWW.
Jest znana jako superglobalna. Zobacz powiązaną stronę manuala o
superglobalnych,
aby dowiedzieć się więcej. Te specjalne zmienne zostały wprowadzone w PHP
» 4.1.0. Wcześniej używano
starszych tablic $HTTP_*_VARS,
na przykład $HTTP_SERVER_VARS. Od PHP 5.4.0
zostały one usunięte. (Zobacz też notatkę poświęconą
staremu kodowi.)
Aby wyświetlić tę zmienną możesz po prostu napisać:
Przykład #1 Wyświetlanie zmiennej (elementu tablicy)
<?php
echo $_SERVER['HTTP_USER_AGENT'];
?>
Przykładowym wynikiem działania tego skryptu może być:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Istnieje wiele typów
zmiennych dostępnych w PHP. W powyższym przykładzie wypisaliśmy
element tablicy.
Tablice mogą być bardzo przydatne.
$_SERVER jest tylko jedną z tablic, które PHP
udostępnia Ci automatycznie. Lista jest dostępna w rozdziale
Zastrzeżone Zmienne,
możesz też zobaczyć ich pełną listę patrząc na wynik działania
funkcji phpinfo() użytej w przykładzie w poprzedniej
sekcji.
Możesz umieszczać wiele wyrażeń PHP wewnątrz tagu PHP i stworzyć
małe bloki kodu, które robią więcej niż pojedyncze wyświetlenie.
Jeśli na przykład chcesz sprawdzić czy przeglądarka to Internet
Explorer, możesz napisać:
<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
echo 'Używasz przeglądarki Internet Explorer.<br />';
}
?>
Przykładowym wynikiem działania tego skryptu może być:
Używasz przeglądarki Internet Explorer.<br />
Wprowadzamy tu kilka nowych zagadnień. Mamy wyrażenie
if.
Jeśli znasz podstawową składnię używaną w C, powinno być
to dla Ciebie logiczne. W przeciwnym wypadku powinieneś
prawdopodobnie znaleźć książkę wprowadzającą do PHP i przeczytać
kilka pierwszych rozdziałów lub zapoznać się z częścią manuala
poświęconą opisowi języka.
Drugim zagadnieniem, które wprowadziliśmy jest wywołanie funkcji
strpos(). strpos() jest funkcją
wbudowaną w PHP, która szuka łańcucha znakow w innym łańcuchu. W tym
wypadku szukamy 'MSIE' (tak zwanej igły) w łańcuchu
$_SERVER['HTTP_USER_AGENT'] (tak zwanym stogu siana). Jeśli
igła zostanie znaleziona w stogu siana, funkcja zwróci pozycję igły względem
początku stogu siana. W przeciwnym wypadku zwróci FALSE
. Jeśli nie zwróci
FALSE
, wyrażenie if otrzyma wartość true TRUE
a kod w ramach jego {klamr} się wykona. W Przeciwnym wypadku kod nie
będzie uruchomiony. Nie bój się tworzyć podobnych przykładów
używając if,
else i innych funkcji
takich jak strtoupper() lub
strlen(). Każda powiązana strona tego podręcznika również
zawiera przykłady. Jeśli nie jesteś pewien jak używać funkcji, będziesz chciał
przeczytać stronę podręcznika o czytaniu definicji
funkcji i sekcję poświęconą
funkcjom w PHP.
Możemy pójść krok dalej i pokazać jak możesz wskoczyć i wyskoczyć z trybu
PHP nawet w środku bloku PHP:
Przykład #3 Mieszanie trybów HTML i PHP
<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
?>
<h3>strpos() zwróciło wartość różną od false</h3>
<p>Używasz przeglądarki Internet Explorer</p>
<?php
} else {
?>
<h3>strpos() zwróciło false</h3>
<p>Nie używasz przeglądarki Internet Explorer</p>
<?php
}
?>
Przykładowym wynikiem działania tego skryptu może być:
<h3>strpos() zwróciło wartość różną od false</h3>
<p>Używasz przeglądarki Internet Explorer</p>
Zamiast używać wyrażenia echo z PHP, aby coś wyświetlić, wyskoczyliśmy z
trybu PHP i wprost wysłaliśmy kod HTML. Ważną i potężną rzeczą jest fakt,
że przepływ logiczny skryptu zostaje nietknięty. Tylko jeden z bloków HTML
zostanie wysłany do odwiedzającego, zależnie od tego czy łańch
MSIE zostanie znaleziony czy nie.