Podręcznik PHP
Poprzedni | Rozdział 2. Mały przewodnik | Następny

# Coś użytecznego

Zabierzmy się teraz za coś, co może się nam do czegoś przydać. Chcemy sprawdzić w jakiej przeglądarce internetowej użytkownik ogląda naszą stronę. W tym celu odczytamy nagłówek User-Agent, który został przesłany w żądaniu HTTP przez przeglądarkę użytkownika. Informacja ta znajduje się w zmiennej. Nazwy zmiennych są w PHP poprzedzone znakiem dolara "$". Zmienna, która nas interesuje, to $_SERVER["HTTP_USER_AGENT"].

> Zmienne superglobalne: $_SERVER jest specjalną zmienną PHP, która zawiera informacje związane z serwerem i środowiskiem uruchomieniowym danego skryptu. Zmienna ta jest nazywana superglobalną (bądź autoglobalną). Co to oznacza, dowiesz się na stronie poświęconej zmiennym predefiniowanym. Zmienne superglobalne wprowadzono w PHP w wersji 4.1.0. Przedtem wykorzystywane były tablice $HTTP_*_VARS, takie jak $HTTP_SERVER_VARS. Chociaż używanie ich nie jest zalecane, są one w dalszym ciągu dostępne w PHP (przeczytaj także notatkę dotyczącą używania starej składni).

Możemy w łatwy sposób wyświetlić wartość tej zmiennej:

Przykład 2-2. Wyświetlanie wartości zmiennej (elementu tablicy)
`<?php echo $_SERVER["HTTP_USER_AGENT"]; ?>`
Przykładowym wynikiem działania tego skryptu może być:
    Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)

W PHP istnieje wiele typów zmiennych. W powyższym przykładzie wyświetliliśmy wartość elementu tablicy. Tablice mogą mieć wiele zastosowań.

$_SERVER jest tylko jedną ze zmiennych, które zawsze są dostępne dla skryptów PHP. Lista wszystkich takich zmiennych znajduje się w sekcji Predefiniowane zmienne, możesz także wygenerować ją przy pomocy prostego skryptu:

Przykład 2-3. Pokaż wszystkie zmienne predefiniowane
`<?php phpinfo(); ?>`

Po wywołaniu skryptu, ujrzysz w swojej przeglądarce stronę zawierającą wiele informacji o PHP łącznie z kompletną listą zmiennych predefiniowanych.

Pomiędzy znacznikami skryptu PHP możesz umieścić wiele różnych instrukcji, nie tylko echo(). Przykładowo, jeśli chcesz sprawdzić czy przeglądarka użytkownika to Internet Explorer, możesz napisać taki skrypt:

Przykład 2-4. Przykład wykorzystania struktur kontrolnych i funkcji
`<?php if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) { echo 'Używasz Internet Explorera<br />'; } ?>`
Jak nietrudno się domyślić, skrypt może wyświetlić:
    Używasz Internet Explorera<br />

W powyższym przykładzie wprowadziliśmy kilka nowych rozwiązań. Przede wszystkim mamy tutaj instrukcję if. Dla osób znających podstawową składnię języka C powinna ona wyglądać znajomo. Jeśli nie rozumiesz do czego ta instrukcja służy, nie obejdzie się bez lektury rozdziału Opis języka. W początkowej fazie nauki języka pomocne mogą być także książki opisujące PHP od podstaw. Spis publikacji poświęconych PHP znajduje się pod adresem http://www.php.net/books.php.

Następnym nowym rozwiązaniem jest wywołanie funkcji strpos(). strpos() jest funkcją wbudowaną w PHP, służy do wyszukiwania jednego łańcucha znaków w drugim. W naszym przykładzie próbowaliśmy odnaleźć "MSIE" w zmiennej $_SERVER["HTTP_USER_AGENT"]. Jeżeli ciąg ten został odnaleziony, funkcja zwróciła jego pozycję w łańcuchu $_SERVER["HTTP_USER_AGENT"]. Jeśli funkcja nie zwróciła wartości `FALSE`, wykonywany był kod umieszczony wewnątrz nawiasów klamrowych instrukcji if. W przeciwnym wypadku, gdy strpos() zwróciła wartość `FALSE`, kod był pomijany. Spróbuj napisać kilka podobnych przykładów z wykorzystaniem instrukcji if, else oraz funkcji takich jak strtoupper() lub strlen(). Każda ze stron opisujących te metody zawiera także przykłady, które pomogą ci zrozumieć ich działanie. Jeżeli nie jesteś pewny jak używać funkcji, zajrzyj na stronę wyjaśniającą jak czytać opisy funkcji i do rozdziału Funkcje.

Przejdźmy teraz krok dalej i zobaczmy w jaki sposób możemy przeplatać kod HTML instrukcjami języka PHP:

Przykład 2-5. Mieszanie HTML z PHP
`<?php if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== false) { ?> <h3>Funkcja strpos zwróciła wartość inną niż &false;</h3> <center><b>Używasz Internet Explorera</b></center> <?php } else { ?> <h3>Funkcja strpos zwróciła wartość false</h3> <center><b>Nie używasz Internet Explorera</b></center> <?php } ?>`
Wynikiem działania tego skryptu może być:
    <h3>Funkcja strpos zwróciła wartość true</h3>
    <center><b>Używasz Internet Explorera</b></center>

Tym razem zamiast instrukcji echo() skorzystaliśmy z innej możliwości - wymieszaliśmy ze sobą kod HTML i PHP. W tym miejscu warto zaznaczyć, że skrypt mimo dużych zmian w zastosowanej składni, nadal działa tak samo. W zależności od tego, co zwróci funkcja strpos(), wyświetlony zostanie tylko jeden blok kodu HTML. Innymi słowy, wszystko zależy od tego, czy ciąg MSIE zostanie odnaleziony w łańcuchu $_SERVER["HTTP_USER_AGENT"].

Poprzedni | Spis treści | Następny
Twój pierwszy skrypt PHP | Początek rozdziału | PHP i formularze