Professional Documents
Culture Documents
PRZYKADOWY ROZDZIA
SPIS TRECI
KATALOG KSIEK
KATALOG ONLINE
PHP5. Kompendium
webmastera
Autor: Daniel Bargie
ISBN: 83-7361-697-7
Format: B5, stron: 576
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
Jzyka PHP nie trzeba ju chyba przedstawia adnej osobie zwizanej z bran
internetow. Jeden z najpopularniejszych jzykw wykorzystywanych do tworzenia
aplikacji internetowych rozwija si bardzo dynamicznie. W kolejnej jego wersji,
oznaczonej numerem 5, pojawio si wiele udoskonale rozszerzajcych bogate
moliwoci tej platformy. PHP5 jest jzykiem obiektowym, zawiera obsug wyjtkw
i rozbudowane mechanizmy przetwarzania plikw w formacie XML. Dziki tym
funkcjom znacznie zwikszy si zakres zastosowa PHP.
PHP5. Kompendium webmastera to ksika opisujca najnowsz wersj tego
rodowiska. Przedstawia wszystko, co jest niezbdne do tworzenia aplikacji
internetowych. Czytajc j, dowiesz si, jak zainstalowa PHP na serwerze i stacji
roboczej, poznasz elementy jzyka i zasady programowania obiektowego.
Nauczysz si korzysta z baz danych i wykorzystywa w swoich aplikacjach
pliki XML i mechanizmy szablonw Smarty. Stworzysz take przykadow aplikacj
internetow tablic ogosze.
Instalacja i konfiguracja PHP w Windows i Linuksie
Zmienne, operatory i wyraenia
Tablice
Konstrukcje warunkowe i ptle
Elementy programowania obiektowego klasy, obiekty, waciwoci i metody
Wsppraca aplikacji PHP z bazami danych
Obsuga formularzy i stosowanie wyrae regularnych
Operacje na plikach i katalogach
Wykorzystywanie plikw w formacie XML
Mechanizmy obsugi wyjtkw
Sesje, cookies i nagwki HTTP
Szablony Smarty
Jeli chcesz pozna jzyk PHP i napisa swoj pierwsz aplikacj internetow,
signij po t ksik.
Spis treci
Wstp...................................................................................................................................................................9
Czym jest PHP?................................................................................................................. 9
Jak to dziaa? ................................................................................................................... 11
Dla kogo jest ta ksika................................................................................................... 12
Co mona znale w ksice ........................................................................................... 12
Rozdzia 1.
Rozdzia 2.
Rozdzia 3.
Rozdzia 4.
Spis treci
Rozdzia 5.
5
Obsuga formularzy .................................................................................................................................. 257
Kod HTML formularza ................................................................................................. 258
Pola formularza ....................................................................................................... 259
Odbieranie danych przesyanych przez formularz HTML............................................. 265
Metody GET oraz POST przesyania danych.......................................................... 265
Odbieranie danych z formularza ............................................................................. 266
Walidacja danych z formularza z wykorzystaniem wyrae regularnych ..................... 271
Czym s wyraenia regularne?................................................................................ 271
Wyraenia regularne w PHP ................................................................................... 271
Metaznaki wyrae regularnych ............................................................................. 272
Wyraenia regularne walidujce adresy WWW oraz adresy e-mail ........................ 278
Wydajno............................................................................................................... 279
Funkcje PHP do obsugi wyrae regularnych.............................................................. 281
Odszukiwanie dopasowa. Funkcja preg_match() .................................................. 282
Dzielenie cigu przeszukiwanego. Funkcja preg_split() ......................................... 282
Tworzenie formularza walidujcego gromadzone dane ................................................ 284
Rozdzia 6.
Operacje na plikach..................................................................................................................................287
Otwarcie i zamknicie pliku funkcje fopen() oraz fclose()....................................... 287
Odczytywanie zawartoci pliku..................................................................................... 290
Czytanie pliku wiersz po wierszu............................................................................ 290
Czytanie pojedynczych znakw funkcja fgetc()................................................. 300
Czytanie okrelonej liczby znakw funkcja fread() ........................................... 301
Czytanie caego pliku.............................................................................................. 302
Zapisywanie informacji do pliku................................................................................... 306
Funkcja fwrite()....................................................................................................... 306
Funkcja file_put_contents()..................................................................................... 309
Poruszanie si po pliku.................................................................................................. 310
Funkcja rewind() ..................................................................................................... 310
Funkcja fseek()........................................................................................................ 311
Funkcja ftell().......................................................................................................... 313
Usuwanie plikw........................................................................................................... 313
Zbieranie informacji o plikach ...................................................................................... 314
Sprawdzanie, czy plik istnieje funkcja file_exists() ........................................... 314
Plik czy katalog? funkcje is_file() oraz is_dir() ................................................. 315
Statystyki plikw..................................................................................................... 316
Sprawdzanie i modyfikacja uprawnie do plikw i katalogw ............................... 319
Funkcja is_readable() .............................................................................................. 319
Funkcja is_writable() .............................................................................................. 320
Funkcja is_executable() .......................................................................................... 320
Zmiana nazwy plikw i katalogw oraz kopiowanie plikw......................................... 322
Zmiana nazwy plikw i katalogw funkcja rename()......................................... 323
Kopiowanie plikw funkcja copy() .................................................................... 323
Operacje na katalogach.................................................................................................. 324
Otwieranie i zamykanie katalogw ......................................................................... 324
Odczytywanie zawartoci katalogu ......................................................................... 325
Tworzenie i usuwanie katalogw ............................................................................ 331
Sprawdzanie iloci wykorzystanego miejsca na dysku ........................................... 332
Rdze aplikacji klasa Debuger ................................................................................. 335
Przesyanie plikw za pomoc formularzy .................................................................... 338
Formularz wysyania plikw ................................................................................... 338
Zmienna $_FILES................................................................................................... 339
Kopiowanie przesanych plikw ............................................................................. 340
Buforowanie informacji o plikach................................................................................. 344
6
Rozdzia 7.
Rozdzia 8.
Obsuga bdw..........................................................................................................................................403
Grupy i typy bdw w PHP.......................................................................................... 404
Bdy inicjacji PHP................................................................................................. 405
Bdy kompilacji ..................................................................................................... 406
Bdy czasu wykonania........................................................................................... 407
Bdy uytkownika.................................................................................................. 408
Kolejno zgaszania bdw .................................................................................. 409
Raportowanie i wywietlanie bdw w PHP................................................................ 410
Raportowanie bdw.............................................................................................. 410
Wywietlanie bdw .............................................................................................. 412
Zapisywanie bdw do pliku dziennika zdarze.................................................... 413
Przechwytywanie bdw z poziomu PHP .................................................................... 414
Operator kontroli bdw operator @ ................................................................ 417
Wyjtki.......................................................................................................................... 417
Klasa Exception ...................................................................................................... 418
Zgaszanie i przechwytywanie wyjtkw................................................................ 420
Klasy potomne klasy Exception .............................................................................. 424
Rdze aplikacji.............................................................................................................. 425
Rozdzia 9.
Rozdzia 10.
Spis treci
7
Metody obiektw klasy Smarty ..................................................................................... 467
Tworzenie zmiennych w szablonach TPL metody assign() oraz assign_ by_ref() .....467
Usuwanie utworzonych zmiennych z szablonw TPL metody clear_all_assign()
oraz clear_assign() ................................................................................................ 469
Metoda clear_compiled_tpl() .................................................................................. 469
Tworzenie szablonw.................................................................................................... 470
Zasady tworzenia szablonw TPL........................................................................... 470
Zmienne .................................................................................................................. 471
Zarezerwowana zmienna $smarty ........................................................................... 473
Modyfikatory zmiennych ........................................................................................ 476
Funkcje wbudowane................................................................................................ 486
Rozdzia 11.
Dodatek A
Dodatek B
Dodatek C
Dyrektywy konfiguracyjne..................................................................................................................547
Funkcje operujce na wartociach dyrektyw ................................................................. 547
Dyrektywy oglne ......................................................................................................... 550
Obsuga plikw ............................................................................................................. 551
Obsuga i raportowanie bdw..................................................................................... 551
Obsuga sesji ................................................................................................................. 552
Skorowidz......................................................................................................................................................555
4.
Komunikacja z baz danych
Niemal w kadej wikszej aplikacji internetowej istnieje komunikacja pomidzy wykonywanymi
skryptami oraz baz danych, ktra zawiera informacje wykorzystywane przez aplikacj WWW.
PHP5 daje programicie moliwo komunikowania si z wieloma typami baz danych. W tym
rozdziale skupimy si jednak na trzech z nich: MySQL w wersji 4, PostgreSQL w wersji 7 oraz
Microsoft SQL Server (MS SQL Server) w wersji 2000.
Wszystkie wymienione bazy danych mona zainstalowa w systemie Windows, natomiast
w systemie Linux mog zosta zainstalowane bazy MySQL oraz PostgreSQL.
Uwaga
W rozdziale zakadamy, e serwery wspomnianych baz danych zostay zainstalowane
i skonfigurowane. Informacja o tym, jak zainstalowa oraz skonfigurowa kade
ze wspomnianych rodowisk bazodanowych, znajduje si w dodatku B Instalacja
i konfiguracja wybranych baz danych.
Konfigurowanie PHP
PHP5 w przeciwiestwie do PHP4 nie posiada wbudowanych funkcji obsugujcych poczenia z bazami danych, dlatego te musimy sprawi, aby interpreter PHP doczy odpowiednie
moduy.
Omawiane w tym podrozdziale procedury konfiguracyjne zakadaj, e serwery baz danych
zostay zainstalowane zgodnie z instrukcjami przedstawionymi w dodatku B Instalacja i konfiguracja wybranych baz danych.
178
System Windows
MySQL
Aby interpreter PHP zainstalowany w systemie Windows mg komunikowa si z baz danych MySQL, w pliku php.ini naley ustawi dyrektyw
.
Uruchomienie tego rozszerzenia powoduje, e interpreter poszukuje biblioteki libmysql.dll, ktra
stanowi interfejs klienta bazy danych MySQL, oraz biblioteki php_mysql.dll. Biblioteki te znajduj
si na CD-ROM-ie doczonym do ksiki, w katalogu Instalacja. Powinny one si znale
w katalogu, na ktry wskazuje dyrektywa w pliku php.ini.
Uwaga
Wicej o pliku php.ini mona przeczyta w dodatku C Dyrektywy konfiguracyjne.
Aby przekona si, czy interpreter PHP zaadowa rozszerzenie pozwalajce na komunikacj
z serwerem MySQL, wystarczy uruchomi skrypt:
oznacza to, e rozszerzenie nie zostao zaadowane, poniewa interpreter nie rozpoznaje funkcji .
PostgreSQL
Aby interpreter PHP zainstalowany w systemie Windows mg komunikowa si z baz danych
PostgreSQL, w pliku php.ini naley uaktywni dyrektyw
.
Biblioteka php_pgsql.dll, ktra jest adowanym rozszerzeniem, znajduje si na CD-ROM-ie doczonym do ksiki, w katalogu Instalacja. Powinna ona znale si w katalogu wskazywanym przez dyrektyw z pliku php.ini.
Uwaga
Wicej o pliku php.ini mona przeczyta w dodatku C Dyrektywy konfiguracyjne.
Aby przekona si, czy interpreter PHP zaadowa rozszerzenie pozwalajce na komunikacj
z serwerem PostgreSQL, wystarczy uruchomi skrypt:
179
oznacza to, e rozszerzenie nie zostao zaadowane, poniewa interpreter nie rozpoznaje funkcji .
MS SQL Server
Aby interpreter PHP zainstalowany w systemie Windows mg komunikowa si z baz danych
MS SQL Server, w pliku php.ini naley uaktywni dyrektyw
.
Niezbdne s dwie biblioteki obecne w systemie: ntwdblib.dll oraz php_mssql.dll. Obie znajduj
si na CD-ROM-ie doczonym do ksiki, w katalogu Instalacja. Biblioteka ntwdblib.dl powinna
znale si w katalogu /winnt/system32/ (jeeli jeszcze jej tam nie ma), natomiast biblioteka
php_mssql.dll powinna znale si w katalogu wskazywanym przez dyrektyw
z pliku php.ini.
Uwaga
Wicej o pliku php.ini mona przeczyta w dodatku C Dyrektywy konfiguracyjne.
Aby przekona si, czy interpreter PHP zaadowa rozszerzenie pozwalajce na komunikacj
z serwerem MS SQL Server, wystarczy uruchomi skrypt:
oznacza to, e rozszerzenie nie zostao zaadowane, poniewa interpreter nie rozpoznaje funkcji
.
System Linux
Konfiguracja PHP 5.0.2 pracujcego w systemie Linux do wsppracy z serwerami baz danych
MySQL, PostgreSQL oraz MS SQL Server jest nieco bardziej skomplikowana ni w systemie
Windows, poniewa wymaga odpowiedniej kompilacji PHP.
MySQL
Aby interpreter PHP stanowicy modu serwera Apache 2 w systemie Linux mg komunikowa
si z serwerem bazy danych MySQL, PHP musi zosta skompilowany z opcj
.
180
Jeeli w systemie Linux zainstalowalimy serwer bazy danych MySQL zgodnie z instrukcj zawart w dodatku B Instalacja i konfiguracja wybranych baz danych, to PHP 5.0.2 dla serwera Apache 2 powinnimy skompilowa w nastpujcy sposb:
!""#"$%& ! % '
$
(
(
Aby sprawdzi, czy proces instalacji PHP z obsug bazy danych MySQL powid si, wystarczy
wykona prosty skrypt:
Uwaga
Wicej o procesie kompilacji i instalacji PHP w systemie Linux mona przeczyta
w rozdziale 1. Instalacja i konfiguracja PHP.
Jeeli wynikiem wykonania skryptu bdzie komunikat
oznacza to, e rozszerzenie nie zostao zaadowane, poniewa interpreter nie rozpoznaje funkcji .
PostgreSQL
Aby interpreter PHP stanowicy modu serwera Apache 2 w systemie Linux mg komunikowa
si z serwerem bazy danych PostgreSQL, PHP musi zosta skompilowany z opcj
.
Jeeli w systemie Linux zainstalowalimy serwer bazy danych PostgreSQL zgodnie z instrukcj
zawart w dodatku B Instalacja i konfiguracja wybranych baz danych, to PHP 5.0.2 dla serwera
Apache 2 powinnimy skompilowa w nastpujcy sposb:
!""#"$%& ! % '
$
(
(
Aby sprawdzi, czy proces instalacji PHP z obsug bazy danych PostgreSQL powid si,
wystarczy wykona prosty skrypt:
Uwaga
Wicej o procesie kompilacji i instalacji PHP w systemie Linux mona przeczyta
w rozdziale 1. Instalacja i konfiguracja PHP.
181
oznacza to, e rozszerzenie nie zostao zaadowane, poniewa interpreter nie rozpoznaje funkcji .
MS SQL Server
Aby interpreter PHP stanowicy modu serwera Apache 2 w systemie Linux mg komunikowa si z serwerem MS SQL Server (ktry musi by zainstalowany na jakiej stacji z systemem
Windows), naley wykona dwupoziomow procedur instalacyjn.
Po pierwsze, naley zainstalowa w systemie bibliotek FreeTDS, ktrej pliki rdowe znajduj si na CD-ROM-ie doczonym do ksiki, w katalogu Instalacja/freetds-0.62.4
Po przejciu do katalogu, w ktrym znajduj si pliki rdowe, naley skonfigurowa proces
kompilacji, skompilowa bibliotek oraz zainstalowa j w systemie:
!""!$& ! !""
' "' '
(
(
Dyrektywa
musi wskazywa na katalog, w ktrym zostaa zainstalowana biblioteka FreeTDS.
Od tej pory moemy tworzy skrypty PHP, ktre bd komunikowa si z serwerem bazy danych MS SQL Server z poziomu Linuksa.
Aby przekona si, czy interpreter PHP zaadowa rozszerzenie pozwalajce na komunikacj
z serwerem MS SQL Server, wystarczy uruchomi skrypt:
oznacza to, e rozszerzenie nie zostao zaadowane, poniewa interpreter nie rozpoznaje funkcji
.