Helion - 2005 PHP i MySQL Tworzenie Stron WWW Vademecum Profesjonalisty Wydanie III.pdf

(415709 KB) Pobierz
PHP i MySQL. Tworzenie stron WWW. Vademecum profesjonalisty. Wydanie trzecie
Zastosowanie PHP...............................................................................................................36
Tworzenie przykładowej aplikacji: „Czci samochodowe Janka”......................................36
Formularz zamówienia..................................................................................................36
Przetwarzanie formularza..............................................................................................38
Osadzanie PHP w HTML.....................................................................................................38
Zastosowanie znaczników PHP.....................................................................................39
Style znaczników PHP...................................................................................................40
Instrukcje PHP...............................................................................................................40
Odstpy..........................................................................................................................41
Komentarze....................................................................................................................41
Dodawanie zawartoci dynamicznej....................................................................................42
Wywoływanie funkcji....................................................................................................43
U7ywanie funkcji date().................................................................................................43
Dostp do zmiennych formularza........................................................................................44
Zmienne formularza.......................................................................................................44
Ł;czenie ci;gów............................................................................................................47
Zmienne i ci;gi znaków.................................................................................................48
Identyfikatory.......................................................................................................................48
Tworzenie zmiennych zadeklarowanych przez u7ytkownika...............................................49
Przypisywanie wartoci zmiennym......................................................................................49
Typy zmiennych...................................................................................................................49
Typy danych w PHP......................................................................................................50
Siła typu.........................................................................................................................50
Rzutowanie typu............................................................................................................51
Zmienne zmiennych.......................................................................................................51
Deklarowanie i u7ywanie stałych.........................................................................................51
Zasig zmiennych................................................................................................................52
U7ywanie operatorów..........................................................................................................53
Operatory arytmetyczne.................................................................................................54
Operatory ci;gów...........................................................................................................55
Operatory przypisania....................................................................................................55
Operatory porówna@......................................................................................................57
Operatory logiczne.........................................................................................................58
Operatory bitowe...........................................................................................................59
Pozostałe operatory........................................................................................................59
 
6
PHP i MySQL. Tworzenie stron WWW. Vademecum profesjonalisty
Stosowanie operatorów: obliczanie sum w formularzu........................................................62
Pierwsze@stwo i kolejnoB: wyznaczanie wartoci wyra7e@................................................63
Zarz;dzanie zmiennymi.......................................................................................................65
Sprawdzanie i ustawianie typów zmiennych.................................................................65
Sprawdzanie stanu zmiennej..........................................................................................66
Reinterpretacja zmiennych.............................................................................................67
Implementowanie struktur kontroluj;cych...........................................................................67
Podejmowanie decyzji za pomoc; instrukcji warunkowych................................................67
Instrukcja if....................................................................................................................67
Bloki kodu.....................................................................................................................68
Instrukcja else................................................................................................................68
Instrukcja elseif..............................................................................................................69
Instrukcja switch............................................................................................................70
Porównanie ró7nych instrukcji warunkowych...............................................................71
Powtarzanie działa@ przy u7yciu iteracji..............................................................................72
Ptle while.....................................................................................................................73
Ptle for i foreach...........................................................................................................74
Ptle do..while...............................................................................................................75
Wyłamywanie si ze struktury skryptu................................................................................76
U7ywanie alternatywnych składni struktur steruj;cych.............................................................76
U7ywanie struktury declare..................................................................................................77
W nastpnym rozdziale.........................................................................................................77
Rozdział 2.
Zapisywanie danych do póDniejszego u7ycia.......................................................................79
Przechowywanie i wyszukiwanie zamówie@ Janka.............................................................80
Przetwarzanie plików...........................................................................................................81
Otwieranie pliku..................................................................................................................81
Tryby otwarcia pliku......................................................................................................81
Stosowanie funkcji fopen() do otwarcia pliku...............................................................82
Otwieranie pliku przez protokół FTP lub HTTP............................................................84
Problemy z otwieraniem plików....................................................................................85
Zapisywanie danych w pliku................................................................................................87
Parametry funkcji fwrite()..............................................................................................88
Formaty plików..............................................................................................................88
Zamykanie pliku..................................................................................................................89
Odczyt z pliku......................................................................................................................91
Otwieranie pliku w celu odczytu — fopen()..................................................................92
WiedzieB, kiedy przestaB — feof().................................................................................92
Odczytywanie pliku wiersz po wierszu — fgets(), fgetss() i fgetcsv()..........................92
Odczyt całego pliku — readfile(), fpassthru(), file()......................................................93
Odczyt pojedynczego znaku — fgetc()..........................................................................94
Odczytywanie zadanej długoci — fread()....................................................................95
Inne przydatne funkcje plikowe...........................................................................................95
Sprawdzanie istnienia pliku — file_exists()..................................................................95
Okrelanie wielkoci pliku — filesize().........................................................................96
Kasowanie pliku — unlink()..........................................................................................96
Poruszanie si wewn;trz pliku — rewind(), fseek() i ftell()..........................................96
Blokowanie pliku.................................................................................................................97
Lepszy sposób obróbki danych — systemy zarz;dzania bazami danych.............................99
Problemy zwi;zane ze stosowaniem plików jednorodnych...........................................99
Jak RDBMS rozwi;zuj; powy7sze problemy?..............................................................99
Propozycje dalszych lektur................................................................................................100
W nastpnym rozdziale......................................................................................................100
Spis tre ci
7
Rozdział 3.
!"#$
Czym s; tablice?................................................................................................................101
Tablice indeksowane numerycznie....................................................................................102
Inicjowanie tablic indeksowanych numerycznie..........................................................102
Dostp do zawartoci tablicy.......................................................................................103
Dostp do tablic przy zastosowaniu ptli.....................................................................104
Tablice z innymi indeksami...............................................................................................105
Inicjowanie tablicy.......................................................................................................105
Dostp do elementów tablicy.......................................................................................105
Stosowanie ptli...........................................................................................................105
Operatory tablicowe...........................................................................................................107
Tablice wielowymiarowe...................................................................................................108
Sortowanie tablic...............................................................................................................112
Stosowanie funkcji sort().............................................................................................112
Stosowanie funkcji asort() i ksort() do porz;dkowania tablic......................................112
Sortowanie odwrotne...................................................................................................113
Sortowanie tablic wielowymiarowych...............................................................................113
Typy sortowa@ definiowane przez u7ytkownika..........................................................113
Odwrotne sortowanie zdefiniowane przez u7ytkownika................................................115
Zmiany kolejnoci elementów w tablicach..........................................................................115
Stosowanie funkcji shuffle()........................................................................................116
Stosowanie funkcji array_reverse()..............................................................................117
Ładowanie tablic z plików.................................................................................................118
Wykonywanie innych działa@ na tablicach........................................................................121
Poruszanie si wewn;trz tablicy — funkcje each(), current(), reset(),
end(), next(), pos() i prev().......................................................................................121
Doł;czanie dowolnej funkcji do ka7dego elementu tablicy — funkcja array_walk()......122
Liczenie elementów tablicy: count(), sizeof() i array_count_values().........................123
Konwersja tablic na zmienne skalarne — funkcja extract().........................................124
Propozycje dalszych lektur................................................................................................125
W nastpnym rozdziale......................................................................................................125
Rozdział 4.
%#&'()'#
Przykładowa aplikacja — Inteligentny Formularz Pocztowy............................................127
Formatowanie ci;gów........................................................................................................129
Przycinanie ci;gów — funkcje chop(), ltrim() i trim()................................................130
Formatowanie ci;gów w celu ich prezentacji..............................................................130
Formatowanie ci;gów do przechowania — funkcje addslashes() i stripslashes()........134
Ł;czenie i rozdzielanie ci;gów za pomoc; funkcji ci;gów................................................135
Stosowanie funkcji explode(), implode() i join().........................................................136
Stosowanie funkcji strtok()..........................................................................................136
Stosowanie funkcji substr().........................................................................................137
Porównywanie ci;gów.......................................................................................................138
Porz;dkowanie ci;gów — funkcje strcmp(), strcasecmp() i strnatcmp().....................138
Sprawdzanie długoci ci;gu za pomoc; funkcji strlen()..............................................139
Dopasowywanie i zamiana podci;gów za pomoc; funkcji ci;gów....................................139
Znajdowanie ci;gów w ci;gach — funkcje strstr(), strchr(), strrchr() i stristr()...........140
Odnajdywanie pozycji podci;gu — funkcje strpos() i strrpos()...................................140
Zamiana podci;gów — funkcje str_replace() i substr_replace()..................................141
Wprowadzenie do wyra7e@ regularnych............................................................................142
Podstawy......................................................................................................................143
Zbiory i klasy znaków..................................................................................................143
PowtarzalnoB..............................................................................................................145
Podwyra7enia...............................................................................................................145
8
PHP i MySQL. Tworzenie stron WWW. Vademecum profesjonalisty
Podwyra7enia policzalne.............................................................................................145
Kotwiczenie na pocz;tku lub na ko@cu ci;gu..............................................................145
Rozgałzianie...............................................................................................................146
Dopasowywanie specjalnych znaków literowych........................................................146
Podsumowanie znaków specjalnych............................................................................146
Umieszczanie wszystkiego razem (Inteligentny Formularz)........................................147
Odnajdywanie podci;gów za pomoc; wyra7e@ regularnych..............................................148
Zamiana podci;gów za pomoc; wyra7e@ regularnych.......................................................149
Rozdzielanie ci;gów za pomoc; wyra7e@ regularnych......................................................149
Porównanie funkcji ci;gów i funkcji wyra7e@ regularnych...............................................150
Propozycje dalszych lektur................................................................................................150
W nastpnym rozdziale......................................................................................................150
Rozdział 5.
*+
Ponowne stosowanie kodu.................................................................................................151
Koszt............................................................................................................................152
NiezawodnoB..............................................................................................................152
SpójnoB......................................................................................................................152
Stosowanie funkcji require() i include()..............................................................................152
Funkcja require().........................................................................................................153
Rozszerzenia plików i require()...................................................................................154
Znaczniki PHP i require()............................................................................................154
Stosowanie require() w szablonach stron WWW...............................................................154
Stosowanie funkcji include().......................................................................................159
Stosowanie funkcji require_once() i include_once()....................................................159
Stosowanie opcji auto_prepend_file i auto_append_file..................................................159
Stosowanie funkcji w PHP.................................................................................................160
Wywoływanie funkcji..................................................................................................160
Wywołanie niezdefiniowanej funkcji..........................................................................162
WielkoB liter a nazwy funkcji.....................................................................................163
Dlaczego powinno si definiowaB własne funkcje?...........................................................163
Podstawowa struktura funkcji............................................................................................164
Nadawanie nazwy funkcji............................................................................................165
Parametry...........................................................................................................................166
Zasig.................................................................................................................................168
Przekazanie przez referencj czy przekazanie przez wartoB?...........................................170
Powrót z funkcji.................................................................................................................171
Zwracanie wartoci przez funkcje......................................................................................172
Bloki kodu...................................................................................................................173
Implementacja rekurencji...................................................................................................174
Propozycje dalszych lektur................................................................................................176
W nastpnym rozdziale......................................................................................................176
Rozdział 6.
"
Koncepcje programowania obiektowego...........................................................................178
Klasy i obiekty.............................................................................................................178
Polimorfizm.................................................................................................................179
Dziedziczenie...............................................................................................................180
Tworzenie klas, atrybutów i operacji w PHP.....................................................................180
Struktura klasy.............................................................................................................180
Konstruktory................................................................................................................181
Destruktory..................................................................................................................181
Tworzenie egzemplarzy.....................................................................................................182
Stosowanie atrybutów klasy...............................................................................................182
Kontrolowanie dostpu przy u7yciu private i public..........................................................184
Spis tre ci
9
Wywoływanie operacji klas...............................................................................................185
Implementacja dziedziczenia w PHP.................................................................................186
Kontrolowanie widocznoci w trakcie dziedziczenia przy u7yciu private i protected......187
Uniewa7nianie.............................................................................................................188
Zapobieganie dziedziczeniu i uniewa7nianiu przy u7yciu final...................................190
Wielodziedziczenie......................................................................................................190
Implementowanie interfejsów......................................................................................191
Tworzenie klas...................................................................................................................192
Tworzenie kodu dla własnej klasy.....................................................................................193
Zaawansowane i nowe mechanizmy obiektowe w PHP5...................................................200
PHP4 a PHP5...............................................................................................................200
U7ywanie stałych klasowych.......................................................................................201
Implementowanie metod statycznych..........................................................................201
Sprawdzanie typu klasy i wskazywanie typu...............................................................201
Klonowanie obiektów..................................................................................................202
U7ywanie klas abstrakcyjnych.....................................................................................203
Przeci;7anie metod przy u7yciu __call().....................................................................203
U7ywanie metody __autoload()...................................................................................204
Implementowanie iteratorów i iteracji.........................................................................205
Przekształcanie klas w ła@cuchy znaków.....................................................................207
U7ywanie API Reflection............................................................................................207
W nastpnym rozdziale......................................................................................................208
Rozdział 7.
"'+&, $
Koncepcja obsługi wyj;tków.............................................................................................209
Klasa Exception.................................................................................................................211
Wyj;tki definiowane przez u7ytkownika...........................................................................212
Wyj;tki w Czciach samochodowych Janka....................................................................214
Wyj;tki i inne mechanizmy obsługi błdów w PHP..........................................................217
Propozycje dalszych lektur................................................................................................218
W nastpnym rozdziale......................................................................................................218
- ++"
Koncepcje relacyjnych baz danych....................................................................................222
Tabele..........................................................................................................................222
Kolumny......................................................................................................................222
Wiersze........................................................................................................................223
Wartoci.......................................................................................................................223
Klucze..........................................................................................................................223
Schematy.....................................................................................................................224
Relacje.........................................................................................................................224
Jak zaprojektowaB internetow; baz danych?....................................................................225
Okrel obiekty wiata realnego, których model chcesz wykonaB................................225
Unikaj przechowywania redundantnych danych..........................................................226
Zapisuj atomowe wartoci kolumn..............................................................................228
Dobierz właciwe klucze.............................................................................................228
Pomyl o zapytaniach, które zadasz bazie...................................................................229
Unikaj tworzenia tabel z wieloma pustymi polami......................................................229
Typy tabel — podsumowanie......................................................................................230
Architektura internetowej bazy danych..............................................................................230
Architektura.................................................................................................................230
Propozycje dalszych lektur................................................................................................232
W nastpnym rozdziale......................................................................................................232
Zgłoś jeśli naruszono regulamin