You are on page 1of 12

IDZ DO

PRZYKADOWY ROZDZIA
SPIS TRECI

KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG

TWJ KOSZYK
DODAJ DO KOSZYKA

CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK

CZYTELNIA
FRAGMENTY KSIEK ONLINE

Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl

PHP w mgnieniu oka


Autor: Chris Newman
Tumaczenie: Radosaw Meryk
ISBN: 83-246-0043-4
Tytu oryginau: Teach Yourself PHP in 10 Minutes
Format: A5, stron: 272

Poznaj jzyk PHP - najpopularniejsz technologi


tworzenia dynamicznych witryn WWW
Sposoby przetwarzania informacji z formularzy na stronach WWW
Komunikacja z baz danych
Usuwanie bdw z kodu
Dynamiczne witryny WWW stopniowo wypieraj takie, ktre opieraj si wycznie
na statycznych treciach. Moliwo poczenia stron z baz danych pozwolia na
tworzenie portali, sklepw internetowych, katalogw, forw dyskusyjnych i wielu innych
witryn, bez ktrych trudno sobie wyobrazi oblicze wspczesnego internetu. Spord
technologii wykorzystywanych do tworzenia dynamicznych witryn WWW najwiksz
popularnoci cieszy si PHP. T dostpn nieodpatnie platform mona uruchomi
w kadym systemie operacyjnym. PHP jest jzykiem stosunkowo prostym. Pisane w nim
skrypty s osadzane w kodzie strony WWW i interpretowane podczas jej wywietlania
w przegldarce.
PHP w mgnieniu oka to ksika dla tych, ktrzy chc szybko pozna najwaniejsze
elementy programowania w jzyku PHP. Opisuje podstawowe zagadnienia zwizane
ze zmiennymi, sowami kluczowymi i organizacj kodu. Czytajc j, dowiesz si,
jak za pomoc PHP przetwarza rne typy danych, jak osadza kod PHP wewntrz
kodu HTML i jak tworzy elementy stron WWW. Nauczysz si rwnie czy skrypty
PHP z zewntrznymi programami, serwerami i usugami, przeczytasz o komunikacji
z baz danych, obsudze systemu plikw i usuwaniu bdw ze skryptw.
Zmienne i stae w PHP
Sterowanie przebiegiem programu
Stosowanie funkcji
Przetwarzanie rnych typw danych
Obsuga formularzy HTML, sesji i plikw cookie
Uwierzytelnianie uytkownikw
Komunikacja z serwerem WWW
czenie z baz danych
Obsuga bdw
Klasy z repozytorium PEAR
Jeli chcesz nauczy si PHP, ale nie masz na to zbyt wiele czasu, koniecznie przeczytaj
t ksik.

Spis treci
O Autorze .....................................................................7
Wprowadzenie: PHP wita! .............................................9

Cz I

Podstawy PHP .............................................15

Rozdzia 1. Wprowadzenie w tematyk PHP ..................................17


Podstawy PHP ..................................................................................... 17
Pierwszy skrypt ................................................................................... 20
Podsumowanie .................................................................................... 24

Rozdzia 2. Zmienne ....................................................................25

Podstawowe wiadomoci o zmiennych ............................................... 25


Typy danych ....................................................................................... 28
Podsumowanie .................................................................................... 31

Rozdzia 3. Przepyw sterowania ...................................................33

Instrukcje warunkowe ......................................................................... 33


Ptle .................................................................................................... 39
Podsumowanie .................................................................................... 41

Rozdzia 4. Funkcje ......................................................................43


Zastosowanie funkcji .......................................................................... 43
Argumenty i zwracane wartoci .......................................................... 45
Wykorzystanie plikw bibliotecznych ................................................ 49
Podsumowanie .................................................................................... 50

Cz II

Przetwarzanie danych ..................................51

Rozdzia 5. Przetwarzanie liczb .....................................................53

Operacje arytmetyczne ........................................................................ 53


Liczbowe typy danych ........................................................................ 56
Funkcje przetwarzajce liczby ............................................................ 57
Podsumowanie .................................................................................... 60

PHP w mgnieniu oka

Rozdzia 6. Przetwarzanie cigw znakw .....................................61


Anatomia cigw znakw ................................................................... 61
Formatowanie cigw znakw ............................................................ 64
Funkcje przetwarzania cigw znakw ............................................... 68
Podsumowanie .................................................................................... 70

Rozdzia 7. Tablice .......................................................................71


Czym s tablice? ................................................................................. 71
Funkcje przetwarzania tablic ............................................................... 75
Tablice wielowymiarowe .................................................................... 78
Podsumowanie .................................................................................... 80

Rozdzia 8. Wyraenia regularne ...................................................81


Wprowadzenie do wyrae regularnych ............................................. 81
Zastosowanie funkcji ereg ................................................................... 82
Podsumowanie .................................................................................... 89

Rozdzia 9. Przetwarzanie godzin i dat ..........................................91


Formaty daty ....................................................................................... 91
Przetwarzanie znacznikw czasu ........................................................ 93
Podsumowanie .................................................................................... 97

Rozdzia 10. Wykorzystanie klas ....................................................99

Obiektowe wasnoci jzyka PHP ........................................................ 99


Czym jest klasa? ............................................................................... 100
Tworzenie i wykorzystywanie obiektw ........................................... 101
Podsumowanie .................................................................................. 105

Cz III rodowisko webowe ..................................107


Rozdzia 11. Przetwarzanie formularzy HTML ................................109
Przesyanie formularzy do PHP ........................................................ 109
Obsuga formularzy za pomoc PHP ................................................ 114
Skrypt do przesyania wiadomoci e-mail za pomoc formularza .... 116
Podsumowanie .................................................................................. 118

Rozdzia 12. Generowanie dynamicznego HTML ............................119


Ustawianie wartoci domylnych ...................................................... 119
Tworzenie elementw formularza ....................................................... 123
Podsumowanie .................................................................................. 127

Rozdzia 13. Weryfikacja poprawnoci danych w formularzach ......129


Zapewnienie wypenienia pl obowizkowych ................................. 129
Wywietlanie ostrzee dotyczcych poprawnoci danych ................. 131
Wymuszanie regu dotyczcych danych ........................................... 133
Wyrnianie pl wymagajcych uwagi ............................................ 134
Podsumowanie .................................................................................. 136

Rozdzia 14. Pliki cookie i sesje ...................................................137

Pliki cookie ....................................................................................... 137


Sesje .................................................................................................. 141
Podsumowanie .................................................................................. 143

Spis treci

Rozdzia 15. Uwierzytelnianie uytkownikw .................................145


Typy uwierzytelniania ....................................................................... 145
Tworzenie systemu uwierzytelniania ................................................ 148
Podsumowanie .................................................................................. 153

Rozdzia 16. Komunikacja z serwerem WWW ................................155


Nagwki HTTP ................................................................................ 155
Zmienne rodowiskowe serwera ....................................................... 160
Podsumowanie .................................................................................. 162

Cz IV Wykorzystanie innych usug


z poziomu PHP ...........................................163
Rozdzia 17. Dostp do systemu plikw .......................................165
Zarzdzanie plikami .......................................................................... 165
Odczytywanie i zapisywanie plikw ................................................. 168
Podsumowanie .................................................................................. 174

Rozdzia 18. Wykonywanie programw na serwerze WWW ............175


Wykonywanie programw na hocie ................................................ 175
rodowisko hosta .............................................................................. 178
Zagadnienia bezpieczestwa ............................................................. 181
Podsumowanie .................................................................................. 182

Rozdzia 19. Wykorzystanie bazy danych MySQL ...........................183


Wykorzystanie MySQL .................................................................... 183
Wykonywanie instrukcji SQL ........................................................... 185
Uruchamianie diagnostyczne instrukcji SQL .................................... 189
Podsumowanie .................................................................................. 191

Rozdzia 20. Abstrakcja bazy danych ...........................................193


Klasa PEAR DB ................................................................................ 193
Zagadnienia zwizane z przenonoci baz danych .......................... 199
Podsumowanie .................................................................................. 202

Rozdzia 21. Uruchamianie skryptw PHP z wiersza polecenia ......203

rodowisko wiersza polecenia .......................................................... 203


Pisanie skryptw przeznaczonych do uruchamiania
w wierszu polecenia ........................................................................ 207
Podsumowanie .................................................................................. 210

Rozdzia 22. Obsuga bdw .......................................................211


Zgaszanie bdw ............................................................................. 211
Podsumowanie .................................................................................. 218

Cz V

Konfigurowanie i rozszerzenia PHP .............219

Rozdzia 23. Konfiguracja PHP .....................................................221

Ustawienia konfiguracji .................................................................... 221


Dyrektywy konfiguracji .................................................................... 224
adowalne moduy ............................................................................ 229
Podsumowanie .................................................................................. 230

PHP w mgnieniu oka

Rozdzia 24. Bezpieczestwo PHP ................................................231


Tryb bezpieczny ................................................................................ 231
Inne mechanizmy zabezpiecze ........................................................ 234
Podsumowanie .................................................................................. 238

Rozdzia 25. Repozytorium PEAR .................................................239


Co to jest PEAR? .............................................................................. 239
Korzystanie z repozytorium PEAR ...................................................... 241
Podsumowanie .................................................................................. 245

Dodatki .....................................................247
Dodatek A Instalacja PHP .........................................................249
Instalacje na platformie Linux (Unix) ............................................... 249
Instalacja w systemie Windows ........................................................ 253
Rozwizywanie problemw .............................................................. 254

Skorowidz ................................................................255

Rozdzia 2.

Zmienne
W tym rozdziale nauczymy si przypisywa wartoci do zmiennych w PHP oraz
wykorzystywa je w prostych wyraeniach.

Podstawowe wiadomoci
o zmiennych
Zmienne kontenery, w ktrych mona zapisywa wartoci do pniejszego
wykorzystania, s zasadniczymi komponentami kadego jzyka programowania.
Na przykad w skrypcie moe wystpowa zmienna o nazwie number, w ktrej
zapisano warto 5, albo zmienna o nazwie name, w ktrej zapisano warto
Krzysztof. Zmienne o podanych nazwach i wartociach zadeklarowano w nastpujcym kodzie:
$number = 5;
$name = "Krzysztof";

Zmienne w PHP zawsze poprzedza si znakiem dolara. Jeli si o tym pamita,


zadeklarowanie nowej zmiennej jest bardzo proste: wystarczy po lewej stronie
znaku rwnoci umieci nazw zmiennej, a po prawej warto, ktr chcemy
do niej przypisa.
Deklarowanie zmiennych. Inaczej ni w niektrych jzykach programowania, w PHP nie trzeba deklarowa zmiennych przed ich wykorzystaniem. Aby zadeklarowa zmienn, wystarczy przypisa do niej
warto. Mona to zrobi w dowolnym momencie.

Cz I Podstawy PHP

26

Zmienne mona wykorzystywa zamiast literaw w dowolnym miejscu kodu


PHP. W zaprezentowanym tu kolejnym przykadzie wykorzystano instrukcj
echo w celu wywietlenia wartoci zapisanej w zmiennej. Robi si to identycznie jak w przypadku wywietlania literau tekstowego:
$name = "Krzysztof";
echo "Cze, ";
echo $name;

Wynik dziaania tego kodu jest nastpujcy:


Cze, Krzysztof

Nazwy zmiennych
Im bardziej opisowe s nazwy zmiennych, tym atwiej rozpozna, do czego s
przeznaczone. Jest to szczeglnie wane jeli sigamy do skryptu kilka miesicy po jego napisaniu.
Oglnie rzecz biorc, nie naley do dobrego stylu stosowanie takich nazw zmiennych jak $a, $b itd. Prawdopodobnie niezbyt dugo bdziemy pamita, czego
dotycz okrelone litery. Dobra nazwa zmiennej zawiera informacje o wartociach, jakich dotyczy (na przykad $cena lub $nazwisko).
Wielko liter. W PHP w nazwach zmiennych rozrniane s wielkie i mae litery na przykad zmienna $nazwisko to co innego ni
$Nazwisko. W tym samym skrypcie w obu zmiennych mog by zapisane inne wartoci.

W nazwach zmiennych mog wystpowa tylko litery, cyfry i znaki podkrelenia.


Nazwa zmiennej moe rozpoczyna si liter bd znakiem podkrelenia. Przykady prawidowych i nieprawidowych nazw zmiennych zestawiono w tabeli 2.1.
Zastosowanie znakw podkrelenia. Wykorzystanie znakw podkrelenia to dobry sposb nadania zmiennym nazw skadajcych
si z dwch lub wikszej liczby sw. Na przykad nazwy zmiennych
$imie_nazwisko oraz $data_urodzenia s bardziej czytelne wanie dziki zastosowaniu znakw podkrelenia.
Inn popularn konwencj stosowan do nazw zmiennych skadajcych si z wikszej liczby sw jest rozpoczynanie kadego kolejnego wyrazu w nazwie wielk liter na przykad $ImieNazwisko
lub $DataUrodzenia. Jeli kto preferuje taki styl, moe z powodzeniem go stosowa w swoich skryptach, musi jednak pamita, e
wielko liter ma znaczenie.

Rozdzia 2. Zmienne

27

Tabela 2.1. Przykady prawidowych i nieprawidowych nazw zmiennych


Prawidowe nazwy zmiennych

Nieprawidowe nazwy zmiennych

$procent

$pct%

$imie_nazwisko

$imie-nazwisko

$wiersz_2

$2gi_wiersz

Wyraenia
Podczas przypisywania wartoci do zmiennej podawana warto nie musi by
literaem. Rwnie dobrze moe to by wyraenie poczone za pomoc operatora dwie (lub wicej) wartoci, ktre wsplnie tworz wynik. Zrozumienie
dziaania zaprezentowanego tu przykadu nie powinno nastrczy trudnoci.
Dokadny jego opis zamieszczono pod przykadem:
$sum = 16 + 30;
echo $sum;

Zmienna $sum pobiera warto wyraenia znajdujcego si po prawej stronie


znaku rwnoci. Wartoci 16 i 30 zostay poczone za pomoc operatora dodawania symbolu plus (+), dlatego wyraenie zwraca wynik dodawania tych
dwch liczb. Jak atwo przewidzie, wykonanie tego kodu spowoduje wywietlenie liczby 46.
T sam operacj dodawania mona wykona z wykorzystaniem dwch zmiennych:
$a =
$b =
$sum
echo

16;
30;
= $a + $b;
$sum;

Wykonanie tego kodu powoduje dodanie wartoci zmiennych $a i $b. Tak jak
poprzednio, skrypt wywietla liczb 46.

Zmienne w cigach znakw


Jak ju powiedziano, cigi znakw musz by ujte w cudzysw lub apostrofy.
Wiemy te, e istnieje rnica pomidzy zastosowaniem apostrofw i cudzysoww.
Na czym polega ta rnica? Znak dolara wystpujcy w cigu znakw ujtym
w cudzysw oznacza, e bieca warto zmiennej powinna sta si czci cigu znakw. Jeli natomiast wystpuje w cigu znakw ujtym w apostrofy, znak
dolara jest interpretowany literalnie i nie powoduje odwoania do zmiennych.

28

Cz I Podstawy PHP

Rnic t zaprezentowano w zamieszczonych niej przykadach. W pierwszym


z nich w cigu znakw wprowadzono warto zmiennej $name:
$name = "Krzysztof";
echo "Cze, $name";

Wykonanie kodu spowoduje wywietlenie cigu Cze, Krzysztof.


W drugim przykadzie znak dolara zostanie zinterpretowany literalnie i nie nastpi
odwoanie do zmiennej:
$name = 'Krzysztof';
echo 'Cze, $name';

Wykonanie tego kodu spowoduje wywietlenie cigu Cze, $name.


Czasami w kodzie PHP trzeba jawnie oznaczy pocztek i koniec zmiennej.
W tym celu naley uy nawiasw klamrowych {}. Aby wywietli wag
z przyrostkiem oznaczajcym kilogramy lub funty, odpowiednia instrukcja powinna przyj nastpujc posta:
echo "Cakowita waga wynosi {$weight}kg";

Gdyby nie zostay zastosowane nawiasy klamrowe wok zmiennej $weight,


interpreter PHP prbowaby znale zmienn $weightkg, ktra najprawdopodobniej nie wystpuje w skrypcie.
Ten sam efekt mona osign dziki zastosowaniu operatora konkatenacji
symbolu kropki. Mona go wykorzysta do poczenia ze sob dwch lub wikszej liczby cigw znakw, tak jak pokazano w nastpujcym przykadzie:
echo 'Cakowita waga wynosi ' . $weight . 'kg';

Trzy wartoci dwa literay znakowe i jedna zmienna $weight s ze sob


czone w kolejnoci, w jakiej wystpuj w instrukcji. Warto zwrci uwag na
to, e na kocu pierwszego cigu znakw dodano spacj, aby oddzieli sowo
wynosi od wartoci wagi.
Gdyby zmienna $weight miaa warto 99, wykonanie przedstawionej wyej
instrukcji spowodowaoby wywietlenie nastpujcego wyniku:
Cakowita waga wynosi 99kg

Typy danych
Kada zmienna, w ktrej zapisano warto, posiada typ danych. Typ danych
definiuje rodzaje wartoci, ktre mog by zapisane w zmiennej. Podstawowe
typy danych dostpne w PHP zestawiono w tabeli 2.2.

Rozdzia 2. Zmienne

29

Tabela 2.2. Typy danych w PHP


Typ danych

Opis

Boolean

Ocena logiczna; moe mie warto TRUE (prawda) lub FALSE (fasz).

Integer

Warto numeryczna dodatnia lub ujemna liczba cakowita.

Double (lub float) Liczba zmiennoprzecinkowa dowolna liczba dziesitna.


String

Warto alfanumeryczna moe zawiera dowoln liczb


znakw ASCII.

W momencie przypisania wartoci do zmiennej nastpuje ustalenie typu danych.


PHP okrela typ danych automatycznie, na podstawie przypisanej wartoci. Aby
sprawdzi typ danych zmiennej, mona skorzysta z funkcji gettype.
Wykonanie poniszego kodu pozwoli przekona si, e typ danych liczby dziesitnej to double:
$value = 7.2;
echo gettype($value);

Dziaanie odwrotne do gettype ma funkcja settype, ktra umoliwia przesonicie typu danych zmiennej. Jeli zapisana w zmiennej warto nie moe by
zapisana przy uyciu nowego typu, jest modyfikowana do najbliszej moliwej
wartoci.
Nastpujcy kod jest prb przeksztacenia cigu znakw na liczb cakowit:
$value = "22nd January 2005";
settype($value, "integer");
echo $value;

W tym przypadku cig znakw rozpoczyna si od cyfr, ale nie reprezentuje liczby cakowitej. W wyniku konwersji przeksztacone bd wszystkie znaki od
pocztku cigu do pierwszego znaku, ktry nie jest liczb. Pozostaa cz cigu
znakw bdzie odrzucona, a zatem wykonanie tego kodu zwrci warto 22.
Analiza typw danych. W praktyce funkcji settype i gettype nie
wykorzystuje si zbyt czsto, poniewa nie ma zbyt wielu sytuacji,
w ktrych trzeba modyfikowa typ danych zmiennej. Jak ju powiedziano, PHP automatycznie przypisuje typ danych do zmiennej.

onglowanie typami
Czasami interpreter PHP przeprowadza niejawn konwersj typw danych. Dzieje
si tak w przypadku, gdy spodziewa si wartoci okrelonego typu. Takie dziaanie okrela si jako onglowanie typami (ang. type juggling).

30

Cz I Podstawy PHP

Na przykad operator dodawania powinien znajdowa si pomidzy dwoma liczbami. Przed wykonaniem operacji dodawania cigi znakw s przeksztacane na
wartoci typu double lub integer. Tak wic zaprezentowana poniej operacja
dodawania zwrci wynik w postaci liczby cakowitej:
echo 100 + "10 cali";

Wykonanie kodu powoduje dodanie liczb 100 i 10, dlatego w wyniku wywietlona zostanie liczba 110.
Podobny mechanizm dziaa w przypadku zastosowania operatora znakowego dla
danych liczbowych. W przypadku przeprowadzania operacji znakowej na danych liczbowych, wartoci liczbowe s najpierw przeksztacane na cigi znakw.
Z tak sytuacj zetknlimy si ju przy okazji omawiania operatora konkatenacji wywietlana zmienna $weight bya liczb.
Wynikiem dziaania operacji wykonywanych na cigach znakw zawsze jest cig
znakw, nawet wtedy, kiedy przypomina liczb. Wykonanie kodu zaprezentowanego w zamieszczonym niej przykadzie zwraca wynik 69, ale jak pokazuje wynik dziaania funkcji gettype zmienna $number zawiera cig znakw:
$number = 6.9;
echo $number;
echo gettype($number);

Rozbudowan list operatorw liczbowych i tekstowych przedstawimy w rozdziaach 5., Przetwarzanie liczb, oraz 6., Przetwarzanie cigw znakw.

Zmienne do przechowywania
nazw zmiennych
W PHP warto zapisan w zmiennej mona wykorzysta jako nazw innej
zmiennej. Jeli to nie brzmi zbyt zrozumiale, sprbujemy objani to za pomoc
nastpujcego przykadu:
$my_age = 21;
$varname = "my_age";
echo "Warto zmiennej $varname wynosi ${$varname}";

Wynik dziaania powyszego skryptu jest nastpujcy:


Warto zmiennej my_age wynosi 21

Poniewa cig znakw jest ujty w cudzysw, znak dolara oznacza, e warto
zmiennej stanie si czci cigu znakw. Konstrukcja ${$varname} spowoduje, e warto zmiennej, ktrej nazw zapisano w zmiennej $varname, stanie si
czci cigu znakw.

Rozdzia 2. Zmienne

31

Nawiasy klamrowe wok nazwy $varname s obowizkowe wewntrz cigw


znakw, ale w innych wywoaniach ich uycie nie jest konieczne. Kod zastosowany w naszym kolejnym, zamieszczonym poniej przykadzie, w ktrym
zastosowano operator konkatenacji, zwraca dokadnie taki sam wynik jaki uzyskalimy poprzednio:
echo 'Warto zmiennej ' . $varname . ' wynosi ' . $$varname;

Podsumowanie
W tym rozdziale moglimy zobaczy, jak posugiwa si zmiennymi w PHP.
W nastpnym dowiemy si, w jaki sposb korzysta z instrukcji warunkowych
i instrukcji ptli do zarzdzania przepywem sterowania w skryptach.

You might also like