Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00057 008268 10493763 na godz. na dobę w sumie
PHP4 od podstaw - książka
PHP4 od podstaw - książka
Autor: Liczba stron: 784
Wydawca: Helion Język publikacji: polski
ISBN: 83-7197-494-9 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> webmasterstwo >> php - programowanie
Porównaj ceny (książka, ebook, audiobook).
PHP4 jest najnowszym wcieleniem PHP -- PHP Hypertext Preprocesor. Jest to język programowania przeznaczony do tworzenia dynamicznych, interaktywnych witryn WWW, który został wymyślony przez Rasmusa Lerdorfa przed rokiem 1994. Od tego czasu zmienił się niezmiernie i jest teraz używany przez programistów WWW na całym świecie. Czym więc tak naprawdę jest? Można go określić technicznie jako przenośny, wbudowywany w HTML język programowania skryptów serwera WWW. PHP4 może być wykorzystany w bardzo różnych rodzajach aplikacji, od użytkowych, jak edytor, do wydajnych witryn typu sklep lub wyszukiwarka. W tej książce spróbujemy przekazać czytelnikowi wiedzę na temat tworzenia witryn przy użyciu PHP4. Przedstawione zostaną użyteczne techniki kodowania i pomysły w jaki sposób można ich użyć we własnych aplikacjach. PHP może być użyty do stworzenia witryn, które zna każdy użytkownik Sieci. Od witryn handlu elektronicznego do wyszukiwarek czy portali informacyjnych. Wiele dużych witryn WWW posiada niektóre lub wszystkie te mechanizmy. W tej książce stworzymy między innymi:

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TRE(cid:140)CI SPIS TRE(cid:140)CI PHP4. Od podstaw KATALOG KSI¥flEK KATALOG KSI¥flEK KATALOG ONLINE KATALOG ONLINE ZAM(cid:211)W DRUKOWANY KATALOG ZAM(cid:211)W DRUKOWANY KATALOG TW(cid:211)J KOSZYK TW(cid:211)J KOSZYK DODAJ DO KOSZYKA DODAJ DO KOSZYKA CENNIK I INFORMACJE CENNIK I INFORMACJE ZAM(cid:211)W INFORMACJE ZAM(cid:211)W INFORMACJE O NOWO(cid:140)CIACH O NOWO(cid:140)CIACH ZAM(cid:211)W CENNIK ZAM(cid:211)W CENNIK CZYTELNIA CZYTELNIA FRAGMENTY KSI¥flEK ONLINE FRAGMENTY KSI¥flEK ONLINE Autorzy: Wankyu Choi, Allan Kent, Chris Lea, Ganesh Prasad, Chris Ullman T‡umaczenie: Pawe‡ Gonera, Piotr Rajca ISBN: 83-7197-494-9 Tytu‡ orygina‡u: Format: B5, stron: oko‡o 780 Beginning PHP4 PHP4 jest najnowszym wcieleniem PHP -- PHP Hypertext Preprocesor. Jest to jŒzyk programowania przeznaczony do tworzenia dynamicznych, interaktywnych witryn WWW, kt(cid:243)ry zosta‡ wymy(cid:156)lony przez Rasmusa Lerdorfa przed rokiem 1994. Od tego czasu zmieni‡ siŒ niezmiernie i jest teraz u¿ywany przez programist(cid:243)w WWW na ca‡ym (cid:156)wiecie. Czym wiŒc tak naprawdŒ jest? Mo¿na go okre(cid:156)li(cid:230) technicznie jako przeno(cid:156)ny, wbudowywany w HTML jŒzyk programowania skrypt(cid:243)w serwera WWW. PHP4 mo¿e by(cid:230) wykorzystany w bardzo r(cid:243)¿nych rodzajach aplikacji, od u¿ytkowych, jak edytor, do wydajnych witryn typu sklep lub wyszukiwarka. W tek ksi„¿ce spr(cid:243)bujemy przekaza(cid:230) czytelnikowi wiedzŒ na temat tworzenia witryn przy u¿yciu PHP4. Przedstawione zostan„ u¿yteczne techniki kodowania i pomys‡y w jaki spos(cid:243)b mo¿na ich u¿y(cid:230) we w‡asnych aplikacjach. PHP mo¿e by(cid:230) u¿yty do stworzenia witryn, kt(cid:243)re zna ka¿dy u¿ytkownik Sieci. Od witryn handlu elektronicznego do wyszukiwarek czy portali informacyjnych. Wiele du¿ych witryn WWW posiada niekt(cid:243)re lub wszystkie te mechanizmy. W tej ksi„¿ce stworzymy miŒdzy innymi: edytor oparty na przegl„darce pozwalaj„cy na tworzenie i edycjŒ plik(cid:243)w na serwerze przy u¿yciu przegl„darki, witrynŒ dla sklep(cid:243)w pozwalaj„c„ na odszukanie towaru i wy(cid:156)wietlenie graficznej mapy odpowiedniego stoiska, sieciow„ grŒ, wyszukiwarkŒ WWW pozwalaj„c„ na wyszukanie witryny w katalogu lub nawigacjŒ przez strukturŒ hierarchiczn„, us‡ugŒ list pocztowych pozwalaj„c„ u¿ytkownikom na prenumeratŒ listy i(cid:160) pozwalaj„c„ administratorom na wysy‡anie poczty do subskrybent(cid:243)w. Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl O Autorach ...................................................h...................................................h............... ..................11 Wstęp ...................................................h...................................................h.................... ....................13 Dlaczego PHP4? ...................................................P...................................................P 14 Znak zachęty ...................................................P...................................................P 15 Czego potrzebujesz, aby korzystać z książki? ...................................................P.......... 15 Zasoby w sieci dotyczące PHP4...................................................P.............................. 16 Konwencje ...................................................P...................................................P........ 16 Rozdział 1. Instalacja ...................................................h...................................................h................19 Co powinienem zrobić?...................................................P.......................................... 20 Instalowanie PHP4 na Windows ...................................................P............................. 21 Instalowanie PHP do Apache Web Server...................................................P........... 23 Instalowanie PHP4 na Linuksie i innych systemach uniksowych ................................... 24 Wybór metody instalacji ...................................................P................................... 25 Skąd otrzymać pliki RPM? ...................................................P................................ 25 Jakich pakietów potrzebujemy? ...................................................P......................... 26 Konfigurowanie i uruchamianie Apache i PHP4...................................................P... 27 Testowanie instalacji...................................................P............................................. 30 Rozdział 2. Pisanie programów w PHP...................................................h.....................................35 Przykładowy program PHP ...................................................P...................................... 36 Przeglądanie strony WWW...................................................P...................................... 40 Klient-serwer ...................................................P...................................................P 40 Na scenę wchodzi PHP ...................................................P.......................................... 46 Skrypty serwera ...................................................P............................................... 47 Pamięć podręczna...................................................P................................................. 48 Zmienne ...................................................P...................................................P........... 49 Typy danych ...................................................P...................................................P. 52 Stałe ...................................................P...................................................P........... 60 Inicjalizacja ...................................................P...................................................P.. 61 Konwersje...................................................P...................................................P.... 62 Zmienne środowiska ...................................................P........................................ 65 Podsumowanie ...................................................P...................................................P.. 66 Rozdział 3. Pobieranie danych od uytkownika ...................................................h.......................67 Formularze HTML ...................................................P.................................................. 68 Znacznik FORM ...................................................P............................................... 68 Atrybuty FORM...................................................P................................................. 69 Kontrolki formularzy HTML a PHP ...................................................P...................... 73 Użycie wartości z formularza w skryptach PHP ...................................................P.... 96 Podsumowanie ...................................................P...................................................P 102 C:AndrzejPDFPHP4. Od podstawspis tresci.doc 3 4 PHP 4. Od podstaw Rozdział 4. Podejmowanie decyzji ...................................................h...........................................103 Wyrażenia warunkowe lub rozgałęzianie ...................................................P................ 104 Przykład rozgałęziania z życia wzięty ...................................................P................ 104 Instrukcja if ...................................................P...................................................P 105 Wielokrotne warunki — else i elseif ...................................................P................ 121 Instrukcja switch ...................................................P........................................... 130 Kontrola poprawności formularza ...................................................P......................... 134 Podsumowanie ...................................................P...................................................P 139 Rozdział 5. Pętle i tablice ...................................................h.......................................................... 141 Pętle...................................................P...................................................P............... 142 Pętle while ...................................................P...................................................P. 142 Pętle do while ...................................................P............................................... 149 Pętle for...................................................P...................................................P..... 153 Tablice...................................................P...................................................P............ 158 Inicjalizacja tablic ...................................................P.......................................... 159 Przeglądanie tablic ...................................................P........................................ 161 Sortowanie tablic...................................................P........................................... 170 Różne funkcje operujące na tablicach...................................................P.............. 173 Tablice wielowymiarowe ...................................................P................................. 176 Praktyczne zastosowanie tablic...................................................P....................... 177 Nowe własności pętli i tabel i PHP4...................................................P...................... 181 Wielokrotne sortowanie tablic ...................................................P......................... 181 Pętle foreach...................................................P................................................. 182 Podsumowanie ...................................................P...................................................P 184 Rozdział 6. Organizacja kodu ...................................................h...................................................187 Dlaczego ponowne użycie kodu jest tak przydatne?...................................................P 188 Modularyzacja ...................................................P............................................... 188 Funkcje...................................................P...................................................P...... 189 Definiowanie i wywoływanie funkcji...................................................P.................. 189 Wybór funkcji...................................................P................................................. 196 Przekazywanie wartości ...................................................P.................................. 197 Zasięg zmiennych ...................................................P............................................... 201 Zmienne globalne i lokalne...................................................P............................. 202 Zagłębianie ...................................................P...................................................P..... 208 Rekurencja...................................................P...................................................P. 210 Pliki dołączane ...................................................P...................................................P 212 Typowe zastosowania plików dołączanych...................................................P........ 216 Podsumowanie ...................................................P...................................................P 218 Rozdział 7. Obsługa i unikanie błędów ...................................................h.....................................219 Obsługa błędów w PHP ...................................................P........................................ 220 Niebezpieczne komunikaty ...................................................P............................. 220 Nieczytelne strony WWW ...................................................P................................ 220 Niewidoczne komunikaty błędów ...................................................P..................... 221 Typy błędów...................................................P...................................................P..... 221 Błędy składni ...................................................P................................................ 221 Błędy logiczne ...................................................P............................................... 224 4 C:AndrzejPDFPHP4. Od podstawspis tresci.doc Spis tre/ci 5 Zasady dobrego kodowania................................................P..................................... 229 Wcinanie kodu ...................................................P.............................................. 229 Komentowanie kodu ...................................................P...................................... 230 Użycie funkcji ...................................................P................................................ 231 Użycie dołączanych plików ...................................................P.............................. 232 Użycie znaczących nazw zmiennych ...................................................P................. 232 Próby załamania kodu ...................................................P.................................... 233 Dokładne sprawdzanie formularza ...................................................P................... 234 Pobieranie danych od użytkownika..................................................P......................... 236 Wyrażenia regularne...................................................P....................................... 236 Wzorce ...................................................P...................................................P...... 237 Znaki specjalne ...................................................P............................................. 238 Uruchamianie skryptów PHP ...................................................P................................ 249 Użycie echo()...................................................P................................................. 249 Sprawdzanie źródła HTML ...................................................P.............................. 250 Ukrywanie komunikatów błędów...................................................P...................... 251 Sprawdzanie dziennika błędów...................................................P........................ 251 Ręczne wykonywanie ciężkiej pracy ...................................................P................. 252 Podsumowanie ...................................................P...................................................P 252 Rozdział 8. Praca z klientem .........................h...................................................h..........................255 Ulepszanie protokołu bezstanowego ...................................................P..................... 256 Rozmowa z użytkownikiem — HTTP, HTML, PHP i interakcyjność .......................... 257 Sesje w PHP4 ...................................................P............................................... 258 Sposoby typu „Zrób to sam” ...................................................P................................ 259 Użycie ukrytych pól ...................................................P........................................ 259 Bardziej uniwersalna metoda ...................................................P.......................... 263 Ciągi zapytań...................................................P................................................. 267 Cookie ...................................................P...................................................P....... 275 Sesje ...................................................P...................................................P.............. 283 Sesje PHP4...................................................P...................................................P 283 Podsumowanie ...................................................P...................................................P 287 Rozdział 9. Obiekty ...................................................h...................................................h...... ..........289 Terminologia obiektowa...................................................P....................................... 290 Użycie predefiniowanych klas ...................................................P............................... 292 Tworzenie kalkulatora z pamięcią ...................................................P.................... 298 Dalsze poznawanie naszej prostej klasy ...................................................P.......... 301 Tworzenie własnych klas...................................................P...................................... 304 Tworzenie klasy od podstaw ...................................................P........................... 304 Rozszerzanie istniejącej klasy ...................................................P......................... 307 Użyteczny obiekt ...................................................P................................................. 310 Podsumowanie ...................................................P...................................................P 314 Rozdział 10. Obsługa plików i katalogów ...................................................h.................................315 Działania na plikach ...................................................P............................................ 316 Otwieranie i zamykanie plików ...................................................P........................ 316 Czytanie i zapis do pliku ...................................................P................................. 319 Pobieranie informacji o plikach ...................................................P....................... 331 Rozdzielanie nazwy pliku i ścieżki...................................................P.................... 339 C:AndrzejPDFPHP4. Od podstawspis tresci.doc 5 6 PHP 4. Od podstaw Kopiowanie, zmiana nazwy i usuwanie plików...................................................P... 339 Tworzenie edytora tekstu...................................................P................................ 342 Praca z katalogami...................................................P.............................................. 350 Inne funkcje operujące na katalogach...................................................P.............. 351 Przeglądanie drzewa katalogów...................................................P....................... 353 Tworzenie przeglądarki katalogów ...................................................P................... 354 Przesyłanie plików ...................................................P......................................... 359 Łączymy wszystko razem — sieciowy edytor tekstu...................................................P 362 Zasoby...................................................P...................................................P............ 368 Podsumowanie ...................................................P...................................................P 368 Rozdział 11. Korzystanie z baz danych w PHP ...................................................h........................369 Bazy danych ...................................................P...................................................P.... 369 Modele danych ...................................................P.............................................. 370 Architektura baz danych ...................................................P................................. 373 Dlaczego MySQL? ...................................................P............................................... 375 Instalacja MySQL-a ...................................................P........................................ 376 Prezentacja SQL ...................................................P............................................ 380 Wykorzystanie MySQL-a ...................................................P....................................... 387 Uruchamianie programu klienta ...................................................P...................... 387 Wybór używanej bazy danych ...................................................P.......................... 388 Poznawanie danych w bazie...................................................P............................ 388 Operowanie na danych przechowywanych w bazie................................................ 390 Użycie poleceń GRANT i REVOKE ...................................................P.................... 392 Podsumowanie ...................................................P.............................................. 394 Obsługa MySQL w PHP ...................................................P........................................ 394 Podstawowe funkcje ...................................................P...................................... 394 Tworzenie baz danych i tabel w MySQL ...................................................P................. 402 Tworzenie przykładowej bazy danych oraz tabel w PHP ......................................... 407 Modyfikacja tabel...................................................P................................................ 410 Wstawianie danych do tabel ...................................................P........................... 412 Zasoby...................................................P...................................................P............ 416 Podsumowanie ...................................................P...................................................P 416 Rozdział 12. Pobieranie danych z baz MySQL w skryptach PHP...............................................419 Pobieranie danych przy użyciu PHP ...................................................P....................... 419 Polecenia SQL służące do pobierania danych ...................................................P........ 423 Funkcje serwera ...................................................P............................................ 423 Pobieranie wartości wybranych pól ...................................................P.................. 424 Tworzenie podsumowań ...................................................P................................. 429 Bardziej złożone zapytania...................................................P.............................. 430 Zastosowanie wszystkich poznanych informacji ...................................................P..... 434 Użycie przeglądarki rekordów ...................................................P.......................... 443 Zasoby...................................................P...................................................P............ 444 Podsumowanie ...................................................P...................................................P 444 Rozdział 13. Operowanie na danych w bazach MySQL w skryptach PHP ...............................445 Wstawianie rekordów w skryptach PHP ...................................................P................. 445 Aktualizacja i usuwanie rekordów z tabel ...................................................P.............. 448 Operowanie na polach dat i czasu ...................................................P........................ 451 Uzyskiwanie informacji o tabelach bazy danych ...................................................P..... 455 6 C:AndrzejPDFPHP4. Od podstawspis tresci.doc Spis tre/ci 7 Tworzenie skryptu rejestrującego użytkowników ...................................................P..... 464 Tworzenie skryptu rejestrującego wizyty ...................................................P................ 471 Tworzenie skryptu zarządzającego użytkownikami ...................................................P.. 480 Zasoby...................................................P...................................................P............ 489 Podsumowanie ...................................................P...................................................P 490 Rozdział 14. XML ...................................................h...................................................h......... ............491 Czym jest XML? ...................................................P.................................................. 491 Struktura dokumentu XML ...................................................P................................... 493 Poprawnie sformułowane dokumenty XML...................................................P............. 494 DTD ...................................................P...................................................P................ 498 Przetwarzanie sterowane zdarzeniami ...................................................P................... 500 Analiza przykładowego pliku XML ...................................................P.................... 501 Przetwarzanie pliku zewnętrznego...................................................P......................... 508 Podsumowanie ...................................................P...................................................P 513 Rozdział 15. Obsługa poczty elektronicznej ...................................................h............................515 Wysyłanie wiadomości poczty elektronicznej w PHP...................................................P 515 Anatomia wiadomości poczty elektronicznej ...................................................P.......... 518 Obsługa załączników ...................................................P........................................... 526 Anatomia wiadomości poczty elektronicznej raz jeszcze ....................................... 527 Dołączanie plików do wiadomości poczty elektronicznej ....................................... 531 Skrypt obsługujący biuletyn informacyjny...................................................P............... 539 Zasoby...................................................P...................................................P............ 556 Podsumowanie ...................................................P...................................................P 556 Rozdział 16. Generacja grafiki...................................................h.................................................559 Wiadomości podstawowe ...................................................P.................................... 559 Tworzenie obrazu...................................................P........................................... 561 Rysowanie ...................................................P...................................................P. 563 Wykorzystanie wszystkich poznanych możliwości ................................................. 567 Zastosowanie praktyczne ...................................................P.................................... 570 Interaktywne mapy...................................................P......................................... 571 Rozpoczynamy pracę...................................................P...................................... 571 Tworzenie szkieletu aplikacji...................................................P........................... 578 Dalsze możliwości funkcjonalne ...................................................P...................... 584 Wyświetlanie szczegółowych informacji o sklepie................................................. 586 Zaawansowane techniki obsługi obrazów ...................................................P.............. 590 Stylizowane mapy ...................................................P.......................................... 590 Ograniczenia palet ...................................................P......................................... 594 Podsumowanie ...................................................P...................................................P 596 Rozdział 17. Studium zagadnienia: katalog adresów URL...................................................h......597 Narzędzie do zarządzania katalogiem adresów URL...................................................P 598 Projekt katalogu adresów URL...................................................P.............................. 598 Wymagania użytkowników...................................................P............................... 599 Interfejs użytkownika ...................................................P..................................... 601 Przechowywanie informacji ...................................................P............................. 602 Inne ograniczenia mające wpływ na projekt ...................................................P...... 607 Struktura kodu ...................................................P.............................................. 607 C:AndrzejPDFPHP4. Od podstawspis tresci.doc 7 8 PHP 4. Od podstaw Implementacja kodu...................................................P............................................ 611 Kod wspólny — php_directory.inc...................................................P.................... 611 Skrypt użytkownika — php_directory.php ...................................................P......... 656 Skrypt administracyjny — dir_manager.php...................................................P...... 657 Informacje od użytkowników...................................................P................................. 680 Podsumowanie ...................................................P...................................................P 680 Dodatek A ODBC...................................................h...................................................h.......... ............681 Czym jest ODBC?...................................................P................................................ 681 Czym ODBC nie jest? ...................................................P.......................................... 683 PHP i ODBC...................................................P...................................................P..... 686 Nawiązywanie połączenia ze źródłem danych...................................................P......... 687 Wykonywanie poleceń SQL ...................................................P.................................. 687 Obsługa wyników ...................................................P................................................ 688 Dodatek B Funkcje PHP...................................................h...................................................h... ......695 Funkcje analizatora składni XML ...................................................P.......................... 695 Funkcje Aspell ...................................................P...................................................P. 697 Funkcje CURL (Client URL Library) ...................................................P........................ 697 Funkcje FDF (Forms Data Format)...................................................P......................... 697 Funkcje graficzne ...................................................P................................................ 699 Funkcje HTTP...................................................P...................................................P... 702 Funkcje kontroli generacji wyników ...................................................P....................... 702 Funkcje matematyczne ...................................................P........................................ 703 Funkcje obsługi baz danych ...................................................P................................. 705 Funkcje obsługi baz danych dBase ...................................................P.................. 705 Funkcje obsługi baz danych DBM ...................................................P.................... 706 Funkcje obsługi baz danych Informix...................................................P................ 707 Funkcje obsługi baz danych InterBase ...................................................P............. 709 Funkcje obsługi baz danych Microsoft SQL Server ............................................... 710 Funkcje obsługi baz danych mSQL ...................................................P.................. 711 Funkcje obsługi baz danych MySQL ...................................................P................. 713 Funkcje obsługi baz danych Oracle 8 ...................................................P............... 716 Funkcje obsługi baz danych Oracle ...................................................P.................. 717 Funkcje obsługi baz danych PostgreSQL ...................................................P.......... 718 Funkcje obsługi baz danych Sybase...................................................P................. 721 Funkcje warstwy abstrakcji bazy danych...................................................P........... 722 Funkcje Zunifikowanego ODBC...................................................P........................ 723 Funkcje obsługi błędów i rejestracji ...................................................P...................... 725 Funkcje obsługi dat i czasu...................................................P.................................. 726 Funkcje obsługi DOM XML ...................................................P................................... 727 Funkcje obsługi funkcji ...................................................P........................................ 727 Funkcje obsługi kalendarzy ...................................................P.................................. 727 Funkcje obsługi katalogów ...................................................P................................... 729 Funkcje obsługi klas i obiektów ...................................................P............................ 729 Funkcje obsługi łańcuchów znaków...................................................P....................... 730 Funkcje obsługi opcji PHP oraz informacyjne...................................................P.......... 734 Funkcje obsługi poczty elektronicznej...................................................P.................... 736 Funkcje obsługi sesji...................................................P........................................... 736 Funkcje obsługi systemu plików ...................................................P........................... 737 Funkcje obsługi tablic...................................................P.......................................... 740 8 C:AndrzejPDFPHP4. Od podstawspis tresci.doc Spis tre/ci 9 Funkcje obsługi wyrażeń regularnych (rozszerzony standard POSIX) ............................ 744 Funkcje obsługi wyrażeń regularnych Perla ...................................................P............ 745 Funkcje obsługi zmiennych ...................................................P.................................. 745 Funkcje POSIX ...................................................P...................................................P. 747 Funkcje Pspell ...................................................P...................................................P. 748 Funkcje serwera Apache ...................................................P...................................... 749 Funkcje sieciowe ...................................................P................................................ 750 Funkcje sterowania wykonywaniem programów ...................................................P...... 751 Funkcje URL ...................................................P...................................................P.... 752 Funkcje WDDX ...................................................P...................................................P. 752 Funkcje Zlib...................................................P...................................................P..... 753 Inne funkcje ...................................................P...................................................P.... 754 C:AndrzejPDFPHP4. Od podstawspis tresci.doc 9 W pierwszym rozdziale przedstawiliśmy PHP, opisaliśmy proces instalacji i konfiguracji serwera WWW oraz PHP. Do tej pory nie pokazaliśmy szczegółowo żadnego przykładu kodu PHP poza tym, który posłużył do przetestowania poprawności instalacji. Pierwszym zagadnieniem, jakim zajmiemy się w tym rozdziale, będzie napisanie bardzo prostej strony PHP i uruchomienie jej na serwerze WWW. W procesie tworzenia tej strony opowiemy, w jaki sposób działa i co robi przykładowy kod. Zapoznamy się również z zadaniami serwera WWW oraz dokładnie opiszemy działanie PHP. Po poznaniu operacji, jakie są wykonywane przez PHP, zajmiemy się podstawowymi elementami języka oraz sposobami przechowywania informacji używanych na stronach WWW. Każdy język programowania posiada mechanizm zapamiętywania danych i kojarzenia ich z identyfikatorem, używanym do odwołania się do danych w dalszej części programu. W jaki sposób przechowujesz informacje o datach, na przykład o urodzinach Twoich znajomych? Jak korzystasz z tej listy i w skąd wiesz, która data jest związana z czyimi urodzinami? PHP, tak samo jak większość języków programowania, używa do tego celu mechanizmu zmiennych. Ostatnia część tego rozdziału jest poświęcona korzystaniu ze zmiennych, operacjom matematycznym oraz prostym manipulacjom na tekstach. W rozdziale tym będziemy zajmować się następującymi zagyadnieniami:  napisaniem i przeanalizowaniem bardzo krótkiego proygramu w PHP,  przedyskutowaniem niektórych protokołów internetowyych,  przedstawieniem ról maszyny PHP i serwera WWW,  zdefiniowaniem znaczenia interpretacji i wykonania,y  opisaniem zmiennych — czym są?  typami danych — omówieniem typów danych, jakie mogą pryzyjmować zmienne,  operacjami możliwymi na zmiennych,  stałymi,  konwersją zmiennych z jednego typu danych na inny, C:AndrzejPDFPHP4. Od podstaw 02.doc 35 36 PHP 4. Od podstaw  zmiennymi środowiska. Rozdział rozpoczniemy nieomal najprostszym możliwym jednolinijkowym przykładem, w którym chcemy pokazać, że strony PHP składają się z trzech składników: tekstu, kodu HTML i skryptów PHP. Strony zawierające skrypty PHP są inne niż te, które zawierają jedynie HTML i w celu poinformowania o tym analizatora PHP są zapisane na serwerze WWW w plikach z rozszerzeniem .php (lub podobnym), na tej podstawie są rozpoznawane i wykonywane przez PHP zainstalowany nya serwerze. Rozszerzenie .php jest zależne od określonej konfiguracji PHP. Jeżeli chcesz, możesz tak skonfigurować PHP, aby korzystał z nieomal dowolnego rozszerzenia, na przykład .dlugierozszerzenie. W tej książce korzystamy jedynie z rozszerzenia .php pisanego małymi literami. Wyniki działania skryptu są przesyłane do przeglądarki w postaci HTML. Później zajmiemy się tym nieco dokładniej, teraz przedstawiymy przykład. Pierwszy przykładowy program 1.1.1.1. Uruchom Twój ulubiony edytor stron WWW i wpisz następuyjący tekst: $  + 44/-31.+8/(cid:27).(cid:29)     $ 2.2.2.2. Zapisz tekst w pliku przykl1.php w katalogu głównym dokumentów serwera WWW. 3.3.3.3. Otwórz Twoją ulubioną przeglądarkę i wpisz pełny adres URyL serwera i strony WWW, dla tego przykładu jest to http://localhost/przykl1.php. Powinieneś uzyskać wynik podobny do poniższego w programie Internyet Explorer. 36 C:AndrzejPDFPHP4. Od podstaw 02.doc Rozdział 2.  Pisanie programów w PHP 37 Rysunek 2.1. Różne rodzaje kodu Tak jak zapowiedzieliśmy wcześniej, najpierw skupimy się na przedstawieniu trzech różnych typów kodu użytego na stronie. Spójrzmy na wpisany właśnie kod i sklasyfikujmy każdy z tych trzech typów: $  + 44/-31.+8/(cid:27).(cid:29)     $ Kod bez żadnego wyróżnienia właściwie nie jest kodem. Jest to po prostu tekst. Nic więcej na jego temat nie można powiedzieć. Linie w ramce są znacznikami HTML. Znaczniki dowolnego typu są łatwe do rozpoznania, ponieważ są oznaczane przez otwierające i zamykające nawiasy trójkątne. Nie jest to prawdziwy kod programu w tradycyjnym rozumieniu tego określenia, dlatego do opisania kodu HTML używamy słowa znacznik. Zakładamy, że znasz HTML, więc nie będziemy więcej mówić na ten temat. Dodamy jeszcze, że wszystkie znaczniki HTML w tej książce będziemy pisać wielkimi literami, mimo że jest to niezgodne ze standardem (standard HTML 4.0 określa, że wszystkie znaczniki powinny być pisane małymi literami). Robimy tak, ponieważ nie chcemy używać ciągle niewygodnego zaznaczania w całej książce, a wszystkie przeglądarki i tak nie rozróżniają wielkości liter w yznacznikach. Wszyscy, którzy znają już XHTML powinni wiedzieć, że jzyk ten, zgodny ze standardem HTML 4.01 (najnowszy standard w XML), jest nietolerancyjny w wielu aspektach, które przeglądarki HTML najczściej ignorowały. Oznacza to, że XHTML nie pozwoli na używanie znaczników, które wyszły z użycia lub na nieprawidłowe zamykanie znaczników. Wymaga również pisania kodu HTML małymi literami. Do tej pory nie ma popularnych przeglądarek akceptujących jedynie XHTML, wic nie powinniśmy obawiać si negatywnych skutków zastosowania wielkich liter. C:AndrzejPDFPHP4. Od podstaw 02.doc 37 38 PHP 4. Od podstaw Kod zaznaczony ciemnym tłem jest skryptem PHP. Skrypt PHP jest również zaznaczony nawiasem trójkątnym i znakiem zapytania. Za każdym razem, gdy zobaczysz fragment tekstu ograniczony znacznikami 44 i , powinieneś wiedzieć, że cały tekst w środku musi być skryptem PHP. Jak widać na wynikowej stronie HTML, te trzy typy tekstu harmonijnie ze sobą współpracują, pomimo to skrypt PHP musi być przetworzony przez serwer WWW (który może być na innym komputerze niż twoja przeglądarka). Jak działa ten kod? Rozpoznając naturę różnych typów kodu na stronach WWW, nie wyjaśniliśmy, co robi każda z linii kodu PHP. Naprawimy to teraz, na naszej stronie zawarta była jedna linia skryptu PHP: /-31.+8/(cid:27).(cid:29) W linii tej wykonywane są trzy czynności. Na początku mamy słowo /-3(cid:9)(cid:10), które jest instrukcją PHP, pobierającą cokolwiek do niej zostanie przekazane i drukującą to na stronie WWW. Jeżeli do skryptu wpiszemy linię: /-3 8+;/-/ na stronie będącej wynikiem działania tego skryptu powinieneś zobaczyć napis  8+ ;/-/. Możesz zauważyć, że w naszym przykładzie na ekranie pojawia się data, a do funkcji /-3(cid:9)(cid:10) przekazaliśmy jedynie funkcję 1.+8/(cid:9).  (cid:10) — jest to druga wykonywana czynność, którą opiszemy za chwilę. PHP posiada ogromną bibliotek zarezerwowanych słów zwanych funkcjami, które służą do realizacji wielu czstych zada2, takich jak zwracanie daty i czasu, wysyłanie poczty, wykonywanie wielu skomplikowanych operacji matematycznych lub wstrzymywanie wykonania skryptu na kilka sekund. W dodatku B przedstawiliśmy całą list funkcji. Nie musisz znać ich wszystkich na pamić, ale wielu z nich użyjemy w przykładach w tej książce, a pópniej bdziesz z jnich stale korzystał. Ostatnim elementem jest średnik. PHP wymaga, aby każda linia kodu (jak się przekonamy, istnieją nieliczne wyjątki od tej reguły) była zakończona średnikiem w celu oznaczenia jej końca. Zauważ, że słowo 1.+8/(cid:9)(cid:10) nie było otoczone cudzysłowami. W naszym przykładzie  8+;/-/, otaczając tekst do wyświetlenia cudzysłowami, wskazaliśmy PHP, że chcemy wyświetlić go dokładnie w taki sposób, jak został napisany. W naszym przypadku, niepodając cudzysłowów, nakazujemy PHP użycie funkcji 1.+8/(cid:9)(cid:10) i zwrócenie jej wyniku. Funkcja zwraca bieżący czas w postaci czasu Greenwich. Przedyskutujemy teraz dokładniej, jak działa funkcjya 1.+8/(cid:9)(cid:10). Pewnie zauważyłeś, że w naszym przykładzie wyświetlaymy datę w postaci: 38 C:AndrzejPDFPHP4. Od podstaw 02.doc Rozdział 2.  Pisanie programów w PHP 39    Jest jednak wiele innych formatów wyświetlania daty. Mogłeś, na przykład otrzymać wynik w postaci:    )  lub 32.+, 46 Są to prawidłowe formaty dat, jednak PHP nie odróżniay, którego formatu chcesz używać lub czy przypadkiem nie chcesz zastosować całkowicie innej wersji. Musisz więc wskazać, co ma zrobić i jest to realizowane przez sekcję zapisaną w nawiasach i cudzysłowach po poleceniu 1.+8/. W naszym przykładzie podaliśmy, że na początku daty ma być dzień, następnie miesiąc i rok. Wielkość liter D, M i Y użytych w funkcji jest również znacząca. PHP interpretuje litery przedstawione w tabeli 2.1. w różny sposób. Tabela 2.1. Znak Wynik +  .     1       2  7 # 8 $ Wyświetla + lub 4. Wyświetla  lub . Dwucyfrowy dzień miesiąca z poprzedzającym zerem, t j. do  . Tekstowo dzień tygodnia w postaci  liter, na przykład: 6. Miesiąc tekstowo, w pełnej postaci, na przykład: +29+6. Godzina w formacie 12-godzinnym tj. od do . Godzina w formacie 24-godzinnym tj. od do . Godzina w formacie 12-godzinnym bez początkowych zer t j. od do . Godzina w formacie 24-godzinnym bez początkowych zer t j. od do . Wyświetla minuty od do . Dzień miesiąca bez początkowych zer od do  . Dzień tygodnia w pełnej postaci, na przykład 6.+. Wskazuje, czy jest to rok przestępny jako lub . Wyświetla miesiąc do . Wyświetla miesiąc bez początkowych zer, tj.: od do . Miesiąc w skróconej, trzyliterowej postaci, na przyk ład +2. Wyświetla sekundy, od do . Przyrostek dla liczebników w języku angielskim jako d wa znaki, na przykład 8, 2.. Ilość dni w podanym miesiącu, tj. od  do  . Ustawienie strefy czasowej na serwerze, na przykład $. C:AndrzejPDFPHP4. Od podstaw 02.doc 39 40 PHP 4. Od podstaw ;     Ilość sekund od początku epoki. Pokazuje dzień tygodnia w postaci numerycznej, od (niedziela) do  (sobota). Podaje rok w postaci czterocyfrowej, na przykład: . Podaje rok w postaci dwucyfrowej, na przykład: . Zwraca dzień w roku, od do . Podaje przesunięcie strefy czasowej w sekundach (od  do  ) . Jest to dosyć obszerna lista. Nie będziemy umieszczać takiej tabeli w tekście za każdym razem, gdy przedstawiamy nową funkcję. Czasami będziesz musiał odszukać potrzebne Ci informacje w dodatkach. Możemy również zmienić nasz ypoprzedni przykład na: /-31+8/(cid:27)(cid:29) Zostanie wtedy wyświetlone: $9/ Jako zadanie domowe pozostawiamy sprawdzenie, jakie dane możemy wyświetlić, modyfikując ten przykład. Teraz, gdy lepiej rozumiemy, jak działa przedstawiony kod, możemy zająć się następnymi zagadnieniami. Popatrzmy, co dzieje się z naszą stroną pomiędzy jej napisaniem i wyświetleniem. Gdy w rozdziale 1. instalowaliśmy PHP, proces ten został podzielony na części, ponieważ instalowaliśmy różne elementy oprogramowania. Jednym z tych elementów jest serwer WWW, który udostępnia nasze strony wszystkim. Innym zadaniem serwera jest zarządzanie obszarem (zwykle katalogiem lub strukturą katalogów), w którym umieszczamy nasze pojedyncze strony lub całą witrynę WWW. Istnieje wiele bezpłatnych i komercyjnych serwerów, ale dominują serwery dwóch firm, zajmujące ponad 70 rynku. Te dwa produkty to serwer Apache oraz Microsoft Internet Information Server. Zakładamy, że do udostępnienia swoich stron używasz jednego z nich. Gdy korzystasz z sieci, oglądając strony WWW, automatycznie łączysz się z serwerem. Proces wysyłania adresu URL jest określany żądaniem. Serwer interpretuje adres URL, odszukuje odpowiednią stronę i odsyła ją do przeglądarki. Jest to nazywane odpowiedzią. Przeglądarka zapamiętuje otrzymany kod i tworzy z niego obraz strony. Przeglądarka jest w tym dialogu klientem, natomiast cały proces jest yzgodny z modelem klient-serwer. 40 C:AndrzejPDFPHP4. Od podstaw 02.doc Rozdział 2.  Pisanie programów w PHP 41 Klient-serwer Termin ten dobrze opisuje sposób działania, określając zadania dystrybucji. Serwer (serwer WWW) przechowuje, interpretuje i rozsyła dane, natomiast klient (przeglądarka) łączy się z serwerem w celu uzyskania danych. Od tej pory, jeżeli użyjemy określenia klient, będziemy mieli na myśli przeglądarkę. Jak się okaże w późniejszych rozdziałach, termin klient-serwer jest uproszczeniem procesu — to nieco abstrakcyjny opis rzeczywistości. Aby zrozumieć szczegóły, musimy krótko opisać sposób działania samego Internetu. Protokoły internetowe Nie chcemy opisywać tu całej historii Internetu, najważniejsze, że jest to sieć połączonych ze sobą komputerów. Internet został zaprojektowany do przenoszenia danych z jednego miejsca do drugiego. Do tego celu używa zestawu proytokołów sieciowych (znanych jako TCP/IP). Protokół sieciowy jest metodą opisu pakietów danych przesyłanych pomidzy wzłami przez sieć telefoniczną, kablową bądp lini T1. Jedną z zalet protokołu TCP/IP jest to, że można szybko zmienić trasę przesyłania danych w przypadku awarii lub spowolnienia jednego z segmentów sieci. Gdy użytkownik zamierza pobrać za pomocą przeglądarki stronę WWW, przeglądarka realizuje to polecenie przy użyciu protokołu o nazwie Transmission Control Protocol (TCP). TCP jest protokołem transportowym, zapewniającym niezawodny format transmisji dla tego typu żądań. Zapewnia, że cały komunikat zostanie poprawnie przekształcony na postać odpowiednią do transmisji ( oczywiście prawidłowo rozpakowany i połączony po dotarciu do miejsca przeznaczenia). Protokół sieciowy TCP/IP jest metodą opisu pakietów danych, które są przesyłane między węzłami za pomocą linii telefonicznej, kablowej lub linii T1. Zanim dane zostaną podzielone w celu wysłania w sieć, muszą otrzymać odpowiedni adres. Drugi z protokołów sieciowych, HyperText Transfer Protocol (HTTP), nakleja na pakiety etykietki adresowe, aby TCP/IP odpowiednio kierował dane. HTTP jest protokołem używanym przez sieć WWW do przesyłania danych między komputerami. Jeżeli zobaczysz adres URL rozpoczynający się od http://, powinieneś wiedzieć, że korzysta on z protokołu HTTP. Można również porównać TCP/IP do poczty, która zajmuje się przesyłaniem przesyłek, natomiast HTTP do znaczka i adresu na kopercie, które zapewniają, że dotrze ona do miejsca przeznaczyenia. Komunikat przesłany z przeglądarki do serwera WWW jest nazywany żądaniem HTTP. Gdy serwer odbierze takie żądanie, sprawdza, czy posiada odpowiednią stronę. Jeżeli znajdzie ją, dzieli na fragmenty zawarty w niej kod HTML (używając TCP), kieruje te fragmenty poprzez sieć na adres przeglądarki (za pomocą HTTP). Jeżeli serwer WWW nie znajdzie odpowiedniej strony, pobiera stronę zawierającą komunikat błędu (w tym przypadku złowrogi Error 404: Strona nie została odnaleziona), dzieli ją i odsyła do przeglądarki. Komunikat przesłany z serwera WWW do przeglądarki nazywamy odpowiedzią HTTP. Poniżej mamy schemat opisanego przed chwilą procesu.y C:AndrzejPDFPHP4. Od podstaw 02.doc 41 42 PHP 4. Od podstaw Rysunek 2.2. Protokół HTTP Opuściliśmy sporo szczegółów technicznych, więc teraz dokładniej opiszemy, jak działa protokół HTTP. Gdy do serwera zostanie wysłane żądanie przesłania strony WWW, zawiera ono coś więcej niż tylko interesujący nas URL. Wraz z żądaniem przesyłamy sporo dodatkowych danych. Dzieje się tak również w przypadku odpowiedzi — serwer wysyła dodatkowe dane do przeglądarki. W następnej części rozdziału zajmiemy się różnymi rodzajami dodatkowych danych przekazywanych wryaz z właściwymi. Wiele danych przesyłanych w komunikacie HTTP generuje się automatycznie i użytkownik nie ma na to bezpośredniego wpływu, więc nie musisz się przejmować ich wysyłaniem. Mimo że nie musisz ich tworzyć, są one dla nas ważne, ponieważ skrypt PHP może korzystać z tych danych i dzięki temu mamy bezpośredni wpływ na ich postać. Każdy komunikat HTTP ma ten sam format (niezależnie, czy jest on żądaniem klienta czy odpowiedzią serwera). Możemy wyróżnić w nim trzy części: linia żądania/odpowiedzi, nagłówek HTTP i treść HTTP. Zawartość tych części zależy od tego, czy komunikat jest żądaniem czy odpowiedzą HTTP — oba te przypadki omóywimy osobno. Narysujmy teraz schemat tego procesu. 42 C:AndrzejPDFPHP4. Od podstaw 02.doc Rozdział 2.  Pisanie programów w PHP 43 Rysunek 2.3. Możemy zobaczyć, że żądanie i odpowiedź HTTP mają bardzo podobną strukturę i wiele danych jest identycznych dla obu części nagłówka HTTP. Fragmenty informacji, które przeznaczone są tylko dla serwera lub tylko dla przeglądarki są wysyłane jedynie jako część żądania bądź odpowiedzi, więc sensowne będzie dokładne przeanalizowanie ich części składowych. (cid:30)danie HTTP Przeglądarka wysyła do serwera WWW żądanie HTTP, które zawiera następujące elementy. Linia (cid:7)dania Pierwsza linia każdego żądania HTTP jest linią żądania, kytóra zawiera następujące dane:  komendę HTTP zwaną też metodą,  ścieżkę na serwerze do zasobów żądanych przez klienta,  numer wersji HTTP. Przykładowa linia żądania może wyglądać następująco: $ 8/784+1/ 8$$ Używana metoda wskazuje serwerowi, w jaki sposób ma obsłużyć żądanie. Istnieją trzy podstawowe metody używane w tym polu. Tabela 2.2. Metoda Opis $ Jest to żądanie przesłania danych z określonego URL. Wię kszość żądań HTTP w Internecie to właśnie żądania $. Informacja zamawiana przez nie może być C:AndrzejPDFPHP4. Od podstaw 02.doc 43 44 PHP 4. Od podstaw czymkolwiek, od strony HTTP lub PHP do wyniku działania programu JavaScript lub PerlScript czy dowolnego innego programu. Możesz w ysłać do serwera ograniczoną ilość danych w postaci rozszerzenia adresu URL.  #$ Jest to taka sama metoda jak $, poza tym, że wskazuje na żądanie tylko nagłówek HTTP bez dołączonych danych. Żądanie to wskazuje, że dane zostaną wysłane do serwe ra jako część treści HTTP. Dane te są następnie przesyłane do programu obsługi n a serwerze WWW. Istnieje wiele innych metod obsługiwanych przez HTTP — $, $, $ , $ i  $#. Są one jednak dużo rzadziej stosowane i dlatego wykraczają poza ramy tej książki. Jeżeli chcesz dowiedzieć się więcej na temat tych metod, przeczytaj RFC 2068 dostępne na serwerze http://www.rfc.net. Nagłówek HTTP Następną częścią danych jest nagłówek HTTP. Zawiera on dane na temat typów dokumentów, jakie klient akceptuje w odpowiedzi na żądanie, typ przeglądarki wysyłającej żądanie, datę i inne dane konfiguracyjne. Nagłówek żądania HTTP zawiera dane, które mogą być zakwalifikowane do jednej z trzeych kategorii.  Ogólne: zawierają informacje na temat zarówno klienta, jaky i serwera, ale nie są specyficzne dla żadnego z nich.  Jednostka: informacje na temat danych przesyłanych pomiędzy kliyentem a serwerem.  Żądanie: dane na temat konfiguracji klienta i różnych typów yakceptowanych dokumentów. Przykładowy nagłówek HTTP wygląda następująco: --/48 --/48)+219+1//2)97 322/-832//4):/ 378;;; ;63 -3 /0/6/6884 ;/,./: ;63 -3 9 ,337 #+4/78 44,33-3./ 7/6)1/283+(cid:27) 29 (cid:29) Jak można zauważyć, nagłówek HTTP składa się z kilku wierszy. Każdy z wierszy zawiera opis fragmentu danych nagłówka HTTP oraz jego wartość.y Istnieje wiele różnych rodzajów linii, z których może składać się nagłówek HTTP, większość z nich jest opcjonalna, więc HTTP musi wskazywać, kiedy kończy przesyłanie danych nagłówka. Do tego celu używana jest pusta linia. W HTTP 1.1 żądanie musi zawierać linię żądania i nagłówek #$. Tre(cid:20)ć HTTP Jeżeli w linii żądania HTTP została użyta metoda POST, treść żądania HTTP zawiera wszystkie dane wysłane do serwera, na przykład dane, które użytkownik wpisał do 44 C:AndrzejPDFPHP4. Od podstaw 02.doc Rozdział 2.  Pisanie programów w PHP 45 formularza HTML (w dalszej części tej książki znajdują się takie przykłady). W przeciwnym przypadku treść żądania HTTP jest pusta. Odpowied HTTP Odpowiedź HTTP jest odsyłana z serwera do klienta i zaywiera następujące składniki. Linia odpowiedzi Linia odpowiedzi zawiera tylko dwie dane:  numer wersji HTTP,  kod żądania HTTP, który wskazuje na udane lub nieudaney wykonanie żądania. Przykładowa linia odpowiedzi to: $$   W tym przykładzie zwracany jest kod status HTTP 200, który jest odpowiednikiem komunikatu . Oznacza on, że żądanie zostało prawidłowo przetworzone i odpowiedź zawiera odpowiednią stronę lub dane z serwera. Przypomnij sobie, że kilka stron wstecz wspominaliśmy o kodzie statusu 404 — linia odpowiedzi zawiera kod 404, jeżeli serwer nie znajdzie żądanego zasobu. Istnieje pięć klas odpowiedzi, wymienionych w tabeli 2.3. Nagłówek HTTP Nagłówek odpowiedzi HTTP jest podobny do opisanego przed chwilą nagłówka żądania. W przypadku odpowiedzi HTTP dane zawarte w nagłówku ysą trzech rodzajów. Tabela 2.3. Klasa kodów Opis 100 — 199 Są to kody informacyjne — wskazują, że bieżące żądanie jest przetwarzane. 200 — 299 300 — 399 400 — 499 500 — 599 Kody oznaczające sukces — serwer WWW prawidłowo otrzymał żądanie i odesłał wynik. Kody oznaczające, że żądanie nie może być spełnione — jest niekompletne, nieprawidłowe lub niemożliwe do wykonania. Kody oznaczające błąd klienta — żądanie było niekompletne, nieprawidłowe lub niemożliwe do wykonania. Kody oznaczające błąd serwera — żądanie wygląda na prawidłowe, ale serwer nie potrafi go zrealizować.  Ogólne: zawierają informacje na temat zarówno klienta, jaky i serwera, ale nie są specyficzne dla żadnego z nich.  Jednostka: informacje na temat danych przesyłanych pomiędzy kliyentem a serwerem. C:AndrzejPDFPHP4. Od podstaw 02.doc 45 46 PHP 4. Od podstaw  Odpowiedź: dane na temat serwera wysyłającego odpowiedź i sposyobu obsługi odpowiedzi. Tak jak poprzednio nagłówek składa się z kilku linii i korzysta z pustej linii oznaczającej koniec danych nagłówka. Poniżej zamieszczamy przykład nagłówka, a po prawej stronie każdej linii znajduje się jej nazwa: $$   +8/32, 783: ,  $ #/6:/64+-/  (cid:27) 2(cid:29)(cid:27)# # 29(cid:29)    +78)3.0/.6,8-8 ,   $ — linia statusu — nagłówek ogólny — nagłówek odpowiedzi — nagłówek jednostki Na temat pierwszej linii już pisaliśmy, na temat drugiej nie mamy nic do powiedzenia. W linii trzeciej, #/6:/6, określamy typ uruchomionego serwera WWW. Czwarta zawiera datę ostatniej modyfikacji strony, którą właśnie ściyągamy. Nagłówek może zawierać wiele wicej danych niż przytoczone tutaj, w zależności od rodzaju żądanych danych. Jeżeli chcesz dowiedzieć si wicej na temat wszystkich typów informacji, jakie mogą znajdować si w trzech czściach nagłówka, znajdziesz je w dokumencie RFC 2068 (Czści 4.5, 7.1 i 7.2). Tre(cid:20)ć HTTP Jeżeli udała się realizacja żądania, treść odpowiedzi HTTP zawiera kod HTML (wraz z wszystkimi skryptami, jakie będzie mogła wykonać przeglądarka), który będzie interpretowany przez przeglądarkę. Teraz wiemy już, w jaki sposób przeglądarka wysyła żądania i jak serwer WWW odsyła strony do przeglądarki. Podsumujmy 6-stopniowy procesy dostarczenia strony WWW. 46 C:AndrzejPDFPHP4. Od podstaw 02.doc Rozdział 2.  Pisanie programów w PHP 47 Rysunek 2.4. Serwer WWW odszukuje żądaną stronę WWW (krok 3.) i, jeżeli jest to strona PHP, musi przetworzyć kod PHP w celu wygenerowania HTML, który następnie jest przesyłany do przeglądarki (krok 4.). Jeżeli nazwa strony jest zakończona .php, serwer przesyła ją w celu przetworzenia do maszyny skryptowej PHP (podyłączonej do serwera). Do tej pory przestudiowaliśmy wiele niezbędnych aspektów otaczających PHP, ale nasza wiedza na temat samego działania PHP jest raczej ogólnikowa. Dla uproszczenia traktowaliśmy PHP jak maszynę do produkcji parówek — serwer WWW napychał ją z jednej strony surowym kodem PHP, a z drugiej strony wychodziła ładnie zapakowana strona HTML — czas odtajnić ten proces. Jak już wspominaliśmy, strony PHP składają się z teksytu, znaczników HTML i skryptów PHP. Programy, które wpisujesz na strony HTML, nazywane są skryptami. Sam HTML nie może być nazwany językiem programowania ponieważ, oprócz wyświetlania statycznego tekstu i obrazków, posiada bardzo ograniczone możliwości, dlatego niezbędne stało się pisanie kodu w innych językach, pozwalających zrealizować dodatkowe funkcje, nazywanych językami skryptowymi. Istnieje wiele języków skryptowych i być może znasz już kilka, na przykład JavaScript. Jednak tym, co odróżnia PHP od JavaScript czy prostego kodu HTML jest to, że jest wykonywany na serwerze, a nie w przeglądarce. HTML pozwala na dołączanie skryptów w (prawie) dowolnym miejscu kodu HTML — robi to, dostarczając standardowych sposobów dołączania skryptów, o czym za chwilę. Gdy serwer otrzyma żądanie wysłania strony i generowany będzie kod HTML, każdy skrypt na stronie jest przesyłany do maszyny skryptowej w celu interpretacji i wygenerowania odpowiedniego kodu HTML. Skrypty są podstawą PHP! Używamy ich do napisania instrukcji pozwalających na dynamiczne tworzenie stron. Istnieje wiele zalet dynamicznego tworzenia stron, można prezentować informacje wygenerowane w oparciu o dane przekazane w formularzu, można zmieniać postać stron dla różnych przeglądarek, można personalizować strony i C:AndrzejPDFPHP4. Od podstaw 02.doc 47 48 PHP 4. Od podstaw korzystać z ustawień użytkownika oraz wiele, wiele innych. Wszystko jest oparte na tym, że skrypt musi zostać zinterpretowany w czasie, gdy zostanie wywołany. Koncepcja analizy i wykonania (krótka dygresja) Interpretacja skryptów PHP jest podzielona na dwa podprocesy. Najpierw sprawdzana jest poprawność skryptu PHP w procesie zwanym analizą. Jest to odpowiednik sprawdzania gramatyki zdań i odszukiwania pomyłek przy pisaniu. Nie zapewnia to, że skrypt PHP jest poprawny, sprawdzana jest tylko jego zgodność ze zbiorem predefiniowanych zasad. Drugim w kolejności jest proces wykonywania skryptu. Tutaj okazuje się, czy napisany kod ma sens. W czasie wykonania pobierana jest pojedyncza linia PHP i zamieniana na odpowiadający jej kod HTML. Jest przeprowadzane liniowo, chyba że zostanie to zmienione w skrypcie PHP. W PHP istnieją dwa miejsca, w których mogą być zwracane błędy: w czasie analizy i w czasie wykonania. Jeżeli zdarzy się taka sytuacja, komunikat błędu zostanie wyświetlony w przeglądarce. Jeżeli wszystko pójdzie dobrze, do przeglądarki trafi dynamicznie utworzona strona HTML. Skrypty serwera W jaki s
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

PHP4 od podstaw
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: