Podręczny słownik 250 sprawdzonych
i skutecznych rozwiązań z zakresu języka PHP
Praca z typami danych i blokami programów PHP
Obsługa formularzy, baz danych i sesji
Tworzenie wydajnych i bezpiecznych witryn internetowych
PHP to najpopularniejszy język skryptowy na świecie, wykorzystywany w milionach witryny internetowych. Szeroki wachlarz możliwości, łatwa składnia oraz współpraca z wieloma systemami operacyjnymi sprawiają, że jest to idealne narzędzie do tworzenia dynamicznych aplikacji WWW. Od wersji PHP 5 język ten obsługuje programowanie obiektowe oraz udostępnia usprawniony mechanizm współpracy z bazami danych, co w znacznym stopniu ułatwia kreowanie rozbudowanych programów sieciowych.
Drugie wydanie książki "PHP. Receptury" zawiera jeszcze więcej gotowych rozwiązań, które zostały dostosowane do nowej wersji języka, czyli PHP 5. Dodatkowo ulepszona forma umożliwia łatwiejsze znalezienie potrzebnych receptur. Pozwolą Ci one szybko rozwiązać często spotykane problemy. Czytając tę książkę dowiesz się między innymi, jak wykonywać operacje na różnych typach danych, jakie elementy składają się na programy PHP i jak z nich korzystać, a także jak obsługiwać formularze czy współpracować z bazami danych. Nauczysz się stosować techniki zarządzania sesjami. Poznasz zasady korzystania z XML, współpracy z kodem w języku JavaScript, a także rozwiązania wielu innych praktycznych problemów.
Praca z typami danych
Korzystanie z różnych bloków aplikacji PHP
Obsługa formularzy
Praca z bazami danych
Przetwarzanie dokumentów XML
Usługi Web Services
Zarządzanie sesją
Generowanie grafiki na stronach internetowych
Zabezpieczanie witryn
Obsługa błędów
Optymalizacja kodu
Praca z systemem plików i katalogów
Wstęp (15)
1. Łańcuchy znaków (23)
1.0. Wprowadzenie (23)
1.1. Uzyskiwanie dostępu do podłańcuchów znaków (26)
1.2. Wyodrębnianie podłańcuchów znaków (27)
1.3. Zastępowanie podłańcuchów znaków (29)
1.4. Przetwarzanie łańcucha znaków znak po znaku (30)
1.5. Odwracanie kolejności słów lub znaków w łańcuchu znaków (32)
1.6. Poszerzanie i zwężanie tabulatorów (33)
1.7. Kontrolowanie wielkości liter (35)
1.8. Umieszczanie funkcji i wyrażeń wewnątrz łańcuchów znaków (37)
1.9. Odcinanie od ciągów tekstowych znaków niewidocznych (38)
1.10. Generowanie danych rozdzielanych znakami przecinka (40)
1.11. Parsowanie danych oddzielanych przecinkami (41)
1.12. Generowanie rekordów danych o stałej szerokości pól (42)
1.13. Parsowanie danych o stałej szerokości (44)
1.14. Dzielenie łańcuchów znaków (47)
1.15. Łamanie tekstu do określonej długości linii (49)
1.16. Przechowywanie danych binarnych w łańcuchach znaków (51)
1.17. Program - pobieranie pliku CSV (53)
2. Liczby (57)
2.0. Wprowadzenie (57)
2.1. Sprawdzanie, czy zmienna zawiera poprawną liczbę (58)
2.2. Porównywanie liczb zmiennopozycyjnych (59)
2.3. Zaokrąglanie liczb zmiennopozycyjnych (60)
2.4. Wykonywanie operacji na seriach liczb całkowitych (61)
2.5. Generowanie liczb losowych z danego przedziału (63)
2.6. Generowanie ważonych liczb losowych (65)
2.7. Obliczanie logarytmów (66)
2.8. Obliczanie potęg (66)
2.9. Formatowanie liczb (67)
2.10. Formatowanie wartości walutowych (69)
2.11. Wyświetlanie słów w liczbie mnogiej (70)
2.12. Obliczanie wartości funkcji trygonometrycznych (72)
2.13. Obliczanie funkcji trygonometrycznych w stopniach, a nie w radianach (73)
2.14. Obsługa bardzo dużych lub bardzo małych liczb (73)
2.15. Przekształcanie liczb z jednego systemu liczbowego na inny (75)
2.16. Wykonywanie obliczeń na liczbach systemów innych niż dziesiętny (76)
2.17. Określenie odległości między dwoma punktami (78)
3. Daty i czas (81)
3.0. Wprowadzenie (81)
3.1. Sprawdzanie aktualnej daty i czasu (82)
3.2. Przekształcanie elementów daty i czasu w znaczniki czasu epoki (85)
3.3. Przekształcanie znacznika czasu epoki w elementy czasu i daty (87)
3.4. Wyświetlanie daty lub czasu w określonym formacie (88)
3.5. Obliczanie różnicy między dwiema datami (93)
3.6. Obliczanie różnicy między dwiema datami mierzonej w dniach liczonych według kalendarza juliańskiego (95)
3.7. Znajdowanie dnia tygodnia, miesiąca lub roku oraz numeru tygodnia w roku (96)
3.8. Weryfikacja poprawności daty (98)
3.9. Parsowanie dat i czasu z łańcuchów znaków (100)
3.10. Dodawanie lub odejmowanie czasu od daty (103)
3.11. Wyznaczanie czasu w strefach czasowych (104)
3.12. Uwzględnianie czasu letniego (110)
3.13. Generowanie czasu o wysokiej precyzji (111)
3.14. Generowanie przedziałów czasowych (113)
3.15. Stosowanie kalendarzy innych niż gregoriański (114)
3.16. Korzystanie z dat wykraczających poza zakres znacznika czasu epoki uniksowej (118)
3.17. Program Calendar (120)
4. Tablice (123)
4.0. Wprowadzenie (123)
4.1. Tworzenie tablicy zaczynającej się od indeksu różnego od 0 (125)
4.2. Przechowywanie w tablicy wielu elementów pod jednym kluczem (127)
4.3. Inicjowanie tablicy liczbami całkowitymi z określonego przedziału (128)
4.4. Iterowanie przez kolejne elementy tablicy (129)
4.5. Usuwanie elementów z tablicy (131)
4.6. Zmienianie rozmiaru tablicy (133)
4.7. Łączenie tablic (135)
4.8. Przekształcanie tablicy w łańcuch znaków (137)
4.9. Wyświetlanie zawartości tablicy z przecinkami (138)
4.10. Sprawdzanie, czy klucz jest w tablicy (139)
4.11. Sprawdzanie, czy element jest w tablicy (140)
4.12. Znajdowanie pozycji elementu w tablicy (142)
4.13. Znajdowanie elementów, które spełniają odpowiednie warunki (143)
4.14. Znajdowanie elementu tablicy o największej lub najmniejszej wartości (144)
4.15. Odwracanie tablicy (145)
4.16. Sortowanie tablicy (146)
4.17. Sortowanie tablicy na podstawie porównywalnych pól (147)
4.18. Sortowanie wielu tablic (149)
4.19. Sortowanie tablicy przy użyciu metody, a nie funkcji (151)
4.20. Ustawianie elementów tablicy w kolejności losowej (151)
4.21. Usuwanie z tablicy powtarzających się elementów (152)
4.22. Przypisanie funkcji do każdego elementu tablicy (153)
4.23. Wyznaczanie sumy, przecięcia lub różnicy między dwiema tablicami (155)
4.24. Wykorzystanie obiektu w sposób charakterystyczny dla tablic (157)
4.25. Program - wyświetlanie tablicy w tabeli HTML z kolumnami ułożonymi w poziomie (160)
5. Zmienne (163)
5.0. Wprowadzenie (163)
5.1. Unikanie pomyłek między operatorami == i = (164)
5.2. Ustalanie wartości domyślnej (165)
5.3. Wymiana wartości bez używania zmiennych tymczasowych (166)
5.4. Tworzenie dynamicznej nazwy zmiennej (167)
5.5. Stosowanie zmiennych statycznych (168)
5.6. Współdzielenie zmiennych pomiędzy procesami (170)
5.7. Enkapsulacja złożonych typów danych do postaci łańcucha znaków (174)
5.8. Wyświetlanie zawartości zmiennej w postaci łańcuchów znaków (176)
6. Funkcje (181)
6.0. Wprowadzenie (181)
6.1. Uzyskiwanie dostępu do parametrów funkcji (182)
6.2. Ustawianie domyślnych wartości parametrów funkcji (183)
6.3. Przekazywanie wartości przez referencję (185)
6.4. Stosowanie parametrów nazwanych (185)
6.5. Tworzenie funkcji pobierających zmienną liczbę argumentów (187)
6.6. Zwracanie wartości przez referencję (189)
6.7. Zwracanie więcej niż jednej wartości (191)
6.8. Pomijanie pewnych zwracanych wartości (192)
6.9. Zwracanie błędu (193)
6.10. Wywoływanie funkcji zależnie od wartości zmiennych (195)
6.11. Dostęp do zmiennej globalnej wewnątrz funkcji (197)
6.12. Tworzenie funkcji dynamicznych (198)
7. Klasy i obiekty (201)
7.0. Wprowadzenie (201)
7.1. Tworzenie egzemplarzy klasy (205)
7.2. Definiowanie konstruktorów obiektów (206)
7.3. Definiowanie destruktorów obiektu (207)
7.4. Kontrola dostępu (209)
7.5. Zabezpieczenie klas i metod przed zmianami (211)
7.6. Przekształcanie obiektu w ciąg tekstowy (213)
7.7. Tworzenie interfejsów (215)
7.8. Tworzenie abstrakcyjnej klasy bazowej (217)
7.9. Przypisywanie referencji do obiektów (220)
7.10. Klonowanie obiektów (220)
7.11. Przesłonięcie procedury dostępu do właściwości (223)
7.12. Wywoływanie metod obiektu zwracanego przez inną metodę (227)
7.13. Agregowanie obiektów (228)
7.14. Dostęp do metod przesłoniętych (231)
7.15. Wykorzystanie polimorfizmu metod (233)
7.16. Definiowanie stałych klasy (235)
7.17. Definiowanie statycznych właściwości i metod (237)
7.18. Nadzorowanie serializacji obiektów (239)
7.19. Introspekcja obiektów (240)
7.20. Sprawdzenie, czy obiekt jest egzemplarzem określonej klasy (244)
7.21. Automatyczne pobieranie plików klasy podczas powoływania obiektu (247)
7.22. Dynamiczne tworzenie obiektów (249)
7.23. Program whereis (250)
8. Podstawy programowania na potrzeby WWW (253)
8.0. Wprowadzenie (253)
8.1. Zapisywanie danych cookie (254)
8.2. Odczytywanie danych cookie (256)
8.3. Usuwanie danych cookie (257)
8.4. Odsyłanie do innej strony (258)
8.5. Pozyskiwanie informacji o przeglądarkach (259)
8.6. Konstruowanie zapytania metody GET (261)
8.7. Odczytywanie treści żądania POST (262)
8.8. Tabele HTML z wierszami o różnych atrybutach stylu (263)
8.9. Proste uwierzytelnianie HTTP (264)
8.10. Uwierzytelnianie z wykorzystaniem danych cookie (268)
8.11. Wymuszenie przesłania danych do przeglądarki (271)
8.12. Buforowanie danych wyjściowych (272)
8.13. Przesyłanie danych z użyciem kompresji gzip (273)
8.14. Odczyt zmiennych środowiskowych (274)
8.15. Ustawianie wartości zmiennych środowiskowych (275)
8.16. Komunikacja w ramach serwera Apache (277)
8.17. Program - aktywowanie i dezaktywowanie stron internetowych użytkowników (278)
8.18. Prosty serwis Wiki (280)
9. Formularze (283)
9.0. Wprowadzenie (283)
9.1. Przetwarzanie danych pochodzących z formularza (285)
9.2. Weryfikacja danych formularza - pola obowiązkowe (286)
9.3. Weryfikacja danych formularza - liczby (288)
9.4. Weryfikacja danych formularza - adresy poczty elektronicznej (291)
9.5. Weryfikacja danych formularza - listy rozwijane (292)
9.6. Weryfikacja danych formularzy - przyciski opcji (294)
9.7. Weryfikacja danych formularza - pola wyboru (295)
9.8. Weryfikacja danych formularza - wartości daty i czasu (297)
9.9. Weryfikacja danych formularza - dane kart kredytowych (298)
9.10. Ochrona przed atakami XSS (299)
9.11. Formularze wielostronicowe (300)
9.12. Powtórne wyświetlanie formularzy wraz z komunikatami o błędach (302)
9.13. Zabezpieczenie przed wielokrotnym przesyłaniem tego samego formularza (304)
9.14. Obsługa przesyłanych plików (306)
9.15. Zabezpieczenie przed wstrzyknięciem zmiennej globalnej (309)
9.16. Obsługa zmiennych zawierających w nazwie znak kropki (311)
9.17. Elementy formularza o większej liczbie opcji (312)
9.18. Listy rozwijane zawierające daty (313)
10. Dostęp do baz danych (317)
10.0. Wprowadzenie (317)
10.1. Bazy danych DBM (320)
10.2. Bazy danych SQLite (323)
10.3. Zestawianie połączeń z bazami danych SQL (325)
10.4. Przesyłanie zapytań do baz danych SQL (327)
10.5. Odczyt wierszy bez użycia pętli (329)
10.6. Wprowadzanie zmian w bazach danych SQL (330)
10.7. Efektywne zwielokrotnianie zapytań (331)
10.8. Określanie liczby udostępnionych wierszy (335)
10.9. Obsługa znaków specjalnych (336)
10.10. Zapisywanie informacji o przebiegu programu oraz komunikatów o błędach (338)
10.11. Automatyczne dobieranie wartości identyfikatorów (340)
10.12. Programowe konstruowanie zapytań (342)
10.13. Tworzenie odsyłaczy do wielostronicowych wyników zapytania (346)
10.14. Buforowanie zapytań i ich wyników (349)
10.15. Dostęp do połączenia bazodanowego w dowolnej części programu (351)
10.16. Program - wielowątkowa lista dyskusyjna (353)
11. Sesje i trwałe dane (361)
11.0. Wprowadzenie (361)
11.1. Śledzenie przebiegu sesji (362)
11.2. Ochrona przed przechwyceniem sesji (364)
11.3. Ochrona przed ustawianiem sesji (365)
11.4. Przechowywanie danych sesji w bazie danych (366)
11.5. Przechowywanie danych sesji w pamięci współdzielonej (368)
11.6. Przechowywanie dowolnych danych w pamięci współdzielonej (372)
11.7. Przechowywanie obliczonych rezultatów w tabelach statystyk (374)
12. XML (377)
12.0. Wprowadzenie (377)
12.1. Generowanie kodu XML w formie ciągu tekstowego (380)
12.2. Generowanie kodu XML z użyciem rozszerzenia DOM (382)
12.3. Analiza nieskomplikowanego dokumentu XML (384)
12.4. Analiza złożonych dokumentów XML (387)
12.5. Analiza dokumentów XML o dużych rozmiarach (389)
12.6. Wyodrębnianie informacji za pomocą języka XPath (395)
12.7. Przekształcanie dokumentu XML za pomocą arkusza XSLT (398)
12.8. Definiowanie parametrów XSLT w kodzie PHP (400)
12.9. Wywoływanie funkcji PHP z arkuszy stylu XSLT (402)
12.10. Walidacja dokumentów XML (406)
12.11. Kodowanie treści (408)
12.12. Odczyt danych RSS i Atom (409)
12.13. Generowanie arkuszy RSS (412)
12.14. Generowanie arkuszy Atom (415)
13. Automatyzacja pracy w sieci (419)
13.0. Wprowadzenie (419)
13.1. Pobieranie stron metodą GET (420)
13.2. Pobieranie stron metodą POST (425)
13.3. Pobieranie stron wymagających danych cookie (427)
13.4. Pobieranie stron wymagających przesłania odpowiednich nagłówków (429)
13.5. Pobieranie stron za pomocą wybranej metody (430)
13.6. Pobieranie strony z ustalonym czasem oczekiwania (432)
13.7. Pobieranie stron w protokole HTTPS (435)
13.8. Analizowanie danych HTTP (435)
13.9. Wyróżnianie fragmentów strony WWW (440)
13.10. Usuwanie niepoprawnych lub niestandardowych znaczników HTML (443)
13.11. Wyodrębnianie odsyłaczy z plików HTML (445)
13.12. Przekształcanie zwykłego tekstu w kod HTML (447)
13.13. Przekształcanie kodu HTML do postaci zwykłego tekstu (448)
13.14. Usuwanie znaczników HTML i PHP (449)
13.15. Odpowiedź na żądania Ajax (450)
13.16. Integracja skryptu PHP z kodem JavaScript (452)
13.17. Program - wyszukiwanie błędnych odsyłaczy (456)
13.18. Program - wyszukiwanie nowych odsyłaczy (458)
14. Korzystanie z usług Web Services (463)...