Kurs PHP Zagadnienia: Wprowadzenie 1) Cześć 1 Składnia języka 2) Cześć 2 Warunki i pętle 3) Cześć 3 Formularze i poczta 4) Cześć 4 Obsługa grafiki i pliki cookies 5) Cześć 5 Dostęp do plików 6) Cześć 6 Przykłady skryptów PHP Literatura Tim Converse, Joyce Park PHP 4. Biblia Wydawnictwo HELION Blake Schwendiman PHP4. Kompendium programisty Więcej na temat PHP http://www.webinside.pl/php http://www.webdeveloper.pl/php http://php.webhelp.pl/kursy/php http://www.php.pl http://kursy.2con.pl/index.php http://krzychu.webmarketing.pl/
Wprowadzenie Miejsce PHP wśród języków internetowych? HTML CSS FLASH client-side server-side Java Script CGI ASP PHP PERL MySQL Oracle Co to jest PHP? PHP (PHP: Hypertext Preprocessor) jest językiem skryptowym wykonywanym po stronie serwera, to znaczy, Ŝe komendy zawarte między znacznikami <?php... lub <?... będą wykonywane na serwerze, a nie na komputerze klienta (uŝytkownika), w przeglądarce.
Wprowadzenie Czym są skrypty PHP? Skrypty PHP są to programy umieszczane w treści stron WWW. Są one wykonywane przez serwer przed wysłaniem strony do uŝytkownika. Mają bardzo duŝe moŝliwości, ale mimo to są dość proste. Bardzo łatwa jest obsługa formularzy za pomocą skryptów PHP. Jedną z największych zalet skryptów PHP jest bardzo łatwa integracja z wieloma bazami danych. Oprócz tego skrypty PHP mają wiele innych ciekawych moŝliwości, jak dynamiczne tworzenie obrazków w formacie GIF, i moŝliwość łatwego wysyłania plików na serwer. Dzięki temu skrypty PHP stanowią ciekawą alternatywę dla skryptów CGI pisanych w Perlu, czy innych językach.
Wprowadzenie Historia PHP 1994 Rasmus Lerdorf, cechy: zbieranie informacji o osobach odwiedzających witrynę, moŝliwość umieszczania zapytań SQL w stronach WWW; 1995 - Personal Home Page Tools, cechy: udostępnienie uŝytkownikom sieci, licznik, księgi gości; PHP/FI (PHP2), cechy: interpreter formularzy i moŝliwości obsługi bazy danych; 1997 - Zeev Suraski i Andi Gutmans, cechy: parser PHP3; 2000 Zend, cechy: PHP4, optymalizator; Kod źródłowy jest powszechnie dostępny na zasadzie OpenSource
Wprowadzenie Środowisko pracy Skrypty PHP wykonywane są po stronie serwera, ale umieszczane bezpośrednio w kodzie strony, np.: <html> <?php print ( To jest kurs PHP ); </html> Serwer interpretuje kod PHP i przekazuje przeglądarce stronę WWW bez wstawek PHP (tzw. czysty HTML ) http://www.korniakj.po.opole.pl/php/php1/plik1.php Wymagane środowisko: - APACHE - interpreter PHP - serwer MySQL Pakiet PHP Triad lub - Apache 1.3.31 - PHP 4.3.9 + SQLite - PHP 5.0.2 - MySQL 3.23.58 - ActivePerl 5.6.1.628 - phpmyadmin 2.6.2 pl2 - Zend Optimizer 2.0.3 - CesarFTP 0.99g - WebAlizer 2.1 - Free SMTP Server - SQLiteManager 1.0.1 Pakiet KRASNAL Serv 2.7
Wprowadzenie Pliki PHP Rozszerzenia plików stron zawierających skrypty PHP *.php lub *.php4 lub *.php3 lub *.phtml Edytor PHP Dowolny edytor tekstowy, np. Notatnik ZagnieŜdŜanie kodu PHP znaczniki skryptów <?php... lub <?... lub <script language= php </script> <%... %> Skrypt PHP w kodzie HTML (rozszerzenie pliku musi być.php )! plik2.php <HTML> <BODY> <? $czas = date( g:m:s ); /* g godzina w formacie 0-23, m minuty w formacie 00-59 s sekundy w formacie 00-59 */ print($czas); </BODY> </HTML> http://www.korniakj.po.opole.pl/php/php1/plik2.php
Wprowadzenie Uruchamianie skryptu PHP stworzenie skryptu przesłanie skryptu do serwera - serwer FTP (elektra.weia.po.opole.pl kat.: public_html oraz ustawić prawa dostępu do plików 755) - lokalny komputer apache\conf\httpd.conf DocumentRoot C:/apache/htdocs uruchomienie adresu skryptu w przeglądarce serwer adres domeny + ścieŝka do pliku lokalny komputer http://localhost + ścieŝka do pliku
Wprowadzenie Typowe problemy skryptu PHP Problemy po uruchomieniu skryptu z błędem: pojawia się tekst skryptu zamiast wyniku jego działania; pojawia się okno dialogowe z pytaniem czy chcesz pobrać plik; pojawia się komunikat informujący, Ŝe wskazany skrypt nie istnieje; pojawia się komunikat informujący, Ŝe w skrypcie występuje błąd; Źródła błędów: błąd typograficzny; błąd interpunkcyjny (brak np.: znaku średnika); znaczniki początku i końca skryptu; znaczniki komentarza;
Liczby w PHP całkowite -3 0 20 32 bity -2 147 483 648... 2 147 483 647 podwójnej precyzji 2.5 0.0 2.3e-12-7 64bity 1.8e308 z 14 miejscami po przecinku Typy zmiennych w PHP integer - liczba całkowita double - liczba rzeczywista string - tekst (łańcuch znaków) array - tablica object - złoŝone zmienne definiowane przez uŝytkownika Uwaga! Typ zmiennej jest określany automatycznie na podstawie przypisywanej wartości.
Zmienne w PHP deklaracja zmiennej $nazwa_zmiennej; tylko litery i cyfry oraz podkreślnik; nazwa zmiennej nie moŝe zaczynać się od cyfry; waŝna jest wielkość liter; nie trzeba deklarować; zmienne mogą zmieniać swój typ w zaleŝności od kontekstu w jakim występują; liczby mogą być konwertowane na ciągi; ciągi mogą być konwertowane na liczby, jeŝeli będą uŝyte w wyraŝeniach matematycznych $liczba1 = 2 $liczba2 = 2.6 $liczba3 = 123 $liczba4 = -123 $liczba5 =0123 $liczba6 = 0x23 $tekst = Kurs PHP - zmienna całkowita - zmienna rzeczywista - zmienna dziesiętna - zmienna ujemna - zmienna ósemkowa - zmienna szesnastkowa - zmienna tekstowa
Przykład <HTML> <TITLE></TITLE> <BODY> <?php $wiek=80; //niejawna konwersja typu $razem_lat = $wiek + "20 lat"; print("dziadek ma: $razem_lat") </BODY> </HTML> http://www.korniakj.po.opole.pl/php/php1/plik3.php Łańcuchy znaków łańcuchy mogą być zawarte w pojedynczym cudzysłowie, tj. 'ble lub w podwójnym, tj. "ble ; Uwaga! JeŜeli łańcuch zostanie zawarty w podwójnym cudzysłowie, to wartości zmiennych zawartych wewnątrz łańcucha będą wyświetlone, zaś w przypadku pojedynczego cudzysłowu, nie będą. $lancuch1 = "To jest pierwszy łańcuch"; $lancuch2 = To jest drugi łańcuch ;
Przykład <?php $liczba = 5; $lancuch = "<p>liczba to $liczba</p>"; $lancuch2 = '<p>liczba to $liczba</p>'; echo $lancuch; // wyświetli się komunikat "Liczba to 5" echo $lancuch2; // wyświetli się komunikat "Liczba to $liczba" http://www.korniakj.po.opole.pl/php/php1/plik4.php Łączenie dwóch łańcuchów odbywa się za pomocą operatora ".", oto przykład: Przykład <?php $lancuch = "Ten łańcuch"; echo $lancuch; $lancuch = "<br>". $lancuch. " zawiera jeszcze ten tekst."; echo $lancuch; http://www.korniakj.po.opole.pl/php/php1/plik5.php
Znak \ poprzedza elementy określające znaki specjalne: \n - przejście do nowej linii \r - powrót karetki do początku linii \t - odpowiednik klawisza Tab (tabulacja) \\ - wyświetla znak \ \" - wyświetla znak " \ - wyświetla znak \$ - wyświetla znak $ \[0-7]{1,3} - wyświetla znak odpowiadający wartości podanej w formacie ósemkowym \x[0-9a-fa-f]{1,2} - wyświetla znak odpowiadający wartości podanej w formacie szesnastkowym Zmienna tekstowa zawierająca tekst w kilku liniach bez uŝycia znaków specjalnych, ani znacznika <BR>; do tego celu słuŝy składnia: <<EOD tekst EOD; $lancuch = <<EOD Przykład łańcucha znajdującego się w kilku liniach. EOD;
Tablice w PHP tablice określają grupy zmiennych skalarnych; tablice mogą być jedno- lub wielowymiarowe; nie jest wymagane podawanie typu danych w tablicy; nie jest wymagane podawanie rozmiaru tablicy; w celu jej utworzenia moŝna posłuŝyć się funkcjami list() oraz array() lub poprzez bezpośrednie przypisanie wartości odpowiedniej pozycji tablicy, np.: $tab1[0] = "zero"; $tab1[1] = "jeden"; $tab1[2] = "dwa"; lub $tab1 = array( 0 => "zero", 1 => "jeden", 2 => "dwa"); Przykład <?php $tab1[0] = "zero"; $tab1[1] = "jeden"; $tab1[2] = "dwa"; echo $tab1[0]. "<BR>". $tab1[1]. "<BR>". $tab1[2] ; http://www.korniakj.po.opole.pl/php/php1/plik6.php
Jeśli istnieje potrzeba dodania elementów do tablicy moŝna to zrobić w następujący sposób: $tab1[] = "trzy"; // $tab1[3] = "trzy" $tab1[] = "cztery"; // $tab1[4] = "cztery" przykład tablic wielowymiarowych: $tab[1][0] = 3; $tab["liczba"][3] = 4; $tab[2]["liczba"] = 5; $tab["liczba"][1]["kolor"] = 6; $lancuch = "Wartosc łańcucha to ". $tab[liczba][1][kolor]; Pzykład tablic asocjacyjnej, gdzie indeksy w tablicy nie są numeryczne, lecz ciągami znaków : <?php $wiek["gosia"] = 13; $wiek["tolek"] = 12; $wiek["zibi"] = 15; $wiek["antek"] = 9; echo "Zibi ma ". $wiek["zibi"]. " lat! "; http://www.korniakj.po.opole.pl/php/php1/plik7.php
Oto klika przydatnych funkcji operujących na tablicach count($tablica) asort($tablica) arsort($tablica) current($tablica) end($tablica) - zwraca liczbę elementów tablicy; - sortuje elementy tablicy alfabetycznie rosnąco, - sortuje elementy tablicy alfabetycznie malejąco; - zwraca bieŝący element tablicy; - zwraca ostatni element tablicy;
Tworzenie funkcji Język PHP umoŝliwia utworzenie własnej funkcji: deklaracja funkcji zaczyna się od słowa function; wymagane jest podanie nazwy funkcji, a w nawiasach () naleŝy umieścić listę parametrów oddzielonych przecinkami; nawiasy klamrowe {} słuŝą do podania treści funkcji; w celu wywołania funkcji podaje się jej nazwę, natomiast w nawiasach listę wartości parametrów; jeŝeli nie przekazuje się Ŝadnych parametrów, równieŝ wówczas naleŝy po nazwie funkcji umieścić pusty nawias. <?php // deklaracja funkcji function sumuj($a, $b) { $a+=$b; print( "a=$a<br>" ); } // wywołanie funkcji sumuj(80, 20); /* teraz wykonają się komendy zawarte w treści funkcji. Zmienna $a to 80, $b to 20 */ http://www.korniakj.po.opole.pl/php/php1/plik8.php
Kiedy zmienna jest zadeklarowana poza funkcją, jej wartość nie będzie widoczna w funkcji: $a=100; function f() { echo($a); } f(); Uwaga! PowyŜszy kod nie spowoduje wyświetlenia liczby 100. Aby zmienna globalna (w tym wypadku $a) była widoczna wewnątrz funkcji, naleŝy uŝyć polecenia global: $a=5; function f() { global $a; echo($a); } f(); Uwaga! PowyŜszy kod spowoduje wyświetlenie liczby 100.
Język PHP umoŝliwia równieŝ deklarację zmiennych statycznych, które zadeklarowane wewnątrz funkcji powodują zamroŝenie swojej wartości pomiędzy kolejnymi wywołaniami tej funkcji. W tym celu naleŝy uŝyć słowa static. <?php function f() { $a=99; echo($a); $a++; } f();echo <BR> ; f(); http://www.korniakj.po.opole.pl/php/php1/plik9.php <?php function f() { static $a=99; echo($a); $a++; } f();echo <BR> ; f(); http://www.korniakj.po.opole.pl/php/php1/plik10.php
Stosując polecenie return funkcja moŝe zwrócić wartość. Kończy się wówczas działanie funkcji <?php function sumuj($a, $b) { $a+=$b; return $a; print( "Ten tekst po słowie return się nie wyświetli" ); } echo(sumuj(80, 20)); Uwaga! Ten skrypt wyświetli liczbę 100 i nic więcej. http://www.korniakj.po.opole.pl/php/php1/plik11.php Funkcja include( nazwa_pliku ) powoduje, Ŝe program przetworzy skrypt dołączonego pliku, np.: <?php include( plik11.php ); http://www.korniakj.po.opole.pl/php/php1/plik12.php <?php $nr_pliku = 11; include( plik.$nr_pliku. php ); http://www.korniakj.po.opole.pl/php/php1/plik13.php