PHP Marcin Celiński grudzień 2000 PHP Plan prezentacji - Wprowadzenie - Możliwości - Podstawy języka PHP - Przykłady - Podsumowanie PHP Wprowadzenie Czym jest PHP? - oficjalnie PHP: Hypertext Preprocessor - język skryptowy zagnieżdżony w HTMLu - działa po stronie serwera - służy do tworzenia dynamicznych stron WWW PHP Wprowadzenie Krótka histroria - koniec 1994 roku; autor Rasmus Lerdorf - wczesne wersje wykorzystywane jedynie przez samego autora w celu tworzenia statystyk odwiedzin jego strony domowej - pierwsza publiczna wersja w 1995 znana jako PHP Tools (Personal Home Page Tools) - stworzony ponownie w połowie 1995 i nazwany PHP/FI Version 2; interpreter danych przesyłanych z formularzy HTML PHP Wprowadzenie Krótka histroria (2) - w 1997 PHP przestało być prywatnym przedsięwzięciem - powstała witryna http://www.php.net zrzeszająca wysiłki osób zaangażowanych w rozwój systemu - Zeev Suraski i Andi Gutmans od nowa stworzyli nowy interpreter w 1998 - PHP Version 3 - Nowy kompilator Zend (Zeev Suraski i Andi Gutmans ) - PHP4 - na podstawie danych NetCraftu szacuje się, że PHP jest używane na około 3300000 witrynach PHP Możliwości Czego PHP nie potrafi zrobić - PHP jest językiem interpretowanym, skrypty nie są wykonywane tak szybko jak programy kompilowane - PHP nie udostępnia (łatwego) działania na bitach - PHP nie udostępnia wskaźników. Autorzy nie uważają braku wskaźników za wadę, lecz jako zaletę PHP - PHP nie dysponuje możliwościami wykorzystania standardu CORBA. Jeśli byłyby one dostępne, to PHP dysponowałoby możliwością pobierania danych z istniejących systemów klient-serwer. PHP Możliwości Czego PHP nie potrafi zrobić (2) - PHP wymaga większej niezależności w obsłudze baz danych. Większość funkcji służących do obsługi baz danych dostępnych w PHP sprowadza się do wywołania odpowiedniej funkcji API, udostępnianej przez konkretny system baz danych. Oznacza to, że obsługa każdej z baz danych wymaga odrębnych funkcji i metod. PHP Możliwości Czego PHP nie potrafi zrobić (3) - STAN. HTTP jest protokołem bezstanowym, a skrypty CGI i PHP są ulotne – serwer wykonuje je, zamyka i zapomina, co działo się przed chwilą. Wprowadza to konieczność wykorzystania unikalnych identyfikatorów. - System transakcyjny. Nawet jeśli system bazy danych obsługuje transakcje, to nie są one przydatne, kiedy nie wszystkie aktualizowane dane znajdują się na serwerze bazy danych. PHP Możliwości Dlaczego PHP? - PHP jest narzędziem niezależnym od systemu operacyjnego serwera WWW - PHP działa z większością webserwerów (Apache, Microsoft IIS, AOL Server, Netscape Enterprise Server, Xitami) dostępnych na różnych systemach operacyjnych (systemy unixowe, Windows itp.) - zapożycza najlepsze cechy i możliwości funkcjonalne języka C, Javy, Perl-a. W rzeczywistości składnia PHP jest bardzo podobna do składni języka C PHP Możliwości Dlaczego PHP? (2) - w odróżnieniu od analogicznych rozwiązań komercyjnych jest produktem darmowym udostępnianym na zasadach Open Source - PHP daje możliwości modyfikacji. PHP zaprojektowano tak, aby dawało możliwość przyszłego rozszerzania możliwości funkcjonalnych. - niezawodność PHP Możliwości funkcjonalne - możliwości PHP nie ograniczają się tylko do generowania danych wyjściowych w postaci kodu HTML. PHP umożliwia generację danych binarnych, w tym także obrazków JPEG, PNG oraz GIF. - PHP pozwala na generowanie dokumentów PDF - posiada narzędzia potwierdzania tożsamości, dostępne w protokole HTTP - istnieje możliwość przesyłania na serwer plików binarnych i tekstowych - posiada słownik Aspell PHP Możliwości funkcjonalne (2) - daje możliwość tworzenia i wykorzystywania cookies - dysponuje możliwością obsługi protokołu SNMP, pozwalającego na monitorowanie wielu urządzeń: ruterów, koncentratory i serwery - daje możliwość korzystania z wielu standardów, takich jak HTML, LDAP, SMTP, SNMP, POP oraz IMAP - pozwala na korzystanie z wyrażeń regularnych PHP Możliwości funkcjonalne (3) - umożliwia kompresje / dekompresje danych - posiada funkcje kryptograficzne - umożliwia korzystanie z appletów (lub servletów) Java - obsługuje standard XML - oferuje wsparcie dla wielu baz danych : Adabas, Dbase, Dbm, FilePro, Hyperwave, Informix, InterBase, mSQL, Microsoft SQL Server, MySQL Sybase, Oracle, PostgreSQL, Solid oraz ODBC PHP Podstawy języka PHP Umieszczanie kodu PHP w HTML Metoda 1 (Znaczniki krótkie) <? echo ("to jest najprostszy sposób\n"); ?> Metoda 2 (preferowana) <?php echo("a ten preferowany\n"); ?> Metoda 3 (znacznik skryptów) <script language="php"> echo (”jako zawartość elementu 'script’\n"); </script> Metoda 4 (znaczniki ASP) <% echo (”możesz użyć znaczników w stylu ASP\n"); %> PHP Podstawy języka PHP Komentarze PHP obsługuje komentarze w stylu ' C', 'C++' oraz Unix shell <?php echo "To jest test"; // To komentarz jednoliniowy /* To komentarz wieloliniowy */ echo "Jeszcze jeden test"; echo "Test"; #To komentarz w stylu Unix-shell ?> PHP Podstawy języka PHP Zmienne -zmiennych nie trzeba deklarować, - typ zmiennej określany jest w czasie wykonywania programu i zależy od kontekstu, w jakim zmienna została użyta - nazwa zmiennej musi być poprzedzona znakiem $: $a = 2; //zmienna typu całkowitego $b = 1.2; //zmienna typu rzeczywistego $c = "tekst"; //zmienna typu tekstowego PHP Podstawy języka PHP Zmienne środowiskowe - zmienne środowiskowe są parami nazwa-wartość istniejącymi w danej sesji użytkownika. - w PHP zmienne środowiskowe automatycznie stają się normalnymi zmiennymi PHP echo echo echo echo $REMOTE_ADDR $REMOTE_HOST $HTTP_USER_AGENT $SERVER_NAME PHP Podstawy języka PHP Cookies - cookies są mechanizmem służącym do przechowywania informacji w przeglądarkach WWW i często służą do śledzenia i identyfikacji użytkowników - są zapisywane na komputerze użytkownika: SetCookie(„kto”, „Janek”); - a kolejne wyświetlane strony mogą je odczytywać i operować na nich: echo $kto; Cookies są usuwane z lokalnego komputera po upływie określonego czasu lub po zakończeniu sesji PHP Przykłady <HTML> <HEAD> <TITLE>Przyklad 1</TITLE> </HEAD> <BODY> Aktualna data to: <?PHP //wyświetl aktualną datę print(Date("d-m-Y")); ?> </BODY> </HTML> PHP Przykłady <HTML> <HEAD> <TITLE>Przyklad 1</TITLE> </HEAD> <BODY> Aktualna data to: 16-12-2000</BODY> </HTML> Kod który dostaje przeglądarka nie zawiera PHP. Jest to czysty HTML, dzięki czemu nikt nie wie jak wygląda nasz skrypt PHP Przeglądarka wyświetla zwykły kod HTML PHP Przykłady <HTML> <HEAD> <TITLE>Funkcje dynamiczne</TITLE> </HEAD> <BODY> <?PHP function write($text) { print($text); } function writeBold($text) { print("<B>$text</B>"); } $myFunction = "write"; $myFunction("Witaj!<BR>\n"); $myFunction = "writeBold"; $myFunction("I żegnaj!<BR>\n"); ?> </BODY> </HTML> <HTML> <HEAD> <TITLE>Funkcje dynamiczne</TITLE> </HEAD> <BODY> Witaj!<BR> <B>I żegnaj!</B><BR> </BODY> </HTML> PHP Przykłady <HTML> <HEAD> <TITLE>Tabliczka mnożenia</TITLE> </HEAD> <BODY> <? print("<TABLE BORDER=\"1\">\n"); //rozpocznij tabelę for($Row=1; $ Row <= 12; $ Row ++) { print("<TR>\n"); // rozpocznij wiersz // wyświetl każdą z kolumn for($Column=1; $ Column <= 12; $ Column ++) { print("<TD>"); print($Row * $Column); print("</TD>"); } print("</TR>\n"); // zakończ wiersz } print("</TABLE>\n"); // zakończ tabelŕ ?> </BODY> </HTML> PHP Przykłady Przeglądarka wyświetli nam ładną tabliczkę mnożenia Korzystając tylko z HTMLa kod byłby znacznie dłuższy przez co łatwiej o pomyłkę. PHP Przykłady Plik grafika.php <? header("Content-type: image/gif"); $image = imagecreate(80,80); $color1 = imagecolorallocate($image, 0, 0, 255); $color2 = imagecolorallocate($image, 255,255,0); imagefill($image, 0, 0, $color2); // wyświetl napis imagestring($image, 5, 0, 0, $napis, $color1); imagestringup($image, 5, 50, 40, "CDE", $color1); imagegif($image); ?> <HTML> <HEAD> <TITLE>Grafika</TITLE> </HEAD> <BODY> <IMG SRC=grafika.php&napis=ABC> </BODY> </HTML> Możemy dynamicznie tworzyć dowolną grafikę na stronie WWW PHP Przykłady <HTML> <HEAD> <TITLE>Dane z bazy</TITLE> </HEAD> <BODY> <? //nawiąż połączenie $i=odbc_connect("access"); $query="select * from osoba"; //wykonaj zapytanie SQL $result=odbc_do($i, $query); //przekaż do przeglądarki odbc_result_all($result, "BORDER=2"); odbc_free_result($result); odbc_close($i); ?> </BODY> </HTML> PHP Przykłady <HTML> <HEAD> <TITLE>Pobierz dane</TITLE> </HEAD> <BODY> <FORM ACTION="zapisz.php" METHOD="post"> Twoje imię: <INPUT TYPE="text" NAME="Imie"><BR> Twoje nazwisko: <INPUT TYPE="text" NAME="Nazwisko"><BR> <INPUT TYPE="submit" VALUE="Zapisz"> </FORM> </BODY> </HTML> PHP Przykłady <HTML> <HEAD> <TITLE>Zapisanie danych</TITLE> </HEAD> <BODY> Plik zapisz.php <? $i=odbc_connect("access"); $query="insert into osoba values". "('$Imie', '$Nazwisko')"; print($query); $result=odbc_do($i, $query); odbc_free_result($result); odbc_close($i); print("Twoja dane zostały zapisane"); ?> </BODY> </HTML> PHP Podsumowanie Potencjał języka jest ogromny. Wystarczy przejrzeć listę projektów, w wykonaniu których posłużono się PHP - www.agencjacenowa.com.pl - www.allegro.pl - mail.go2.pl - www.conowego.pl - www.infogsm.pl - www.zone.pl PHP Podsumowanie Bibliografia - Leon Atkinson „PHP 3” - Craig Hilton „PHP 3 Internetowe aplikacje bazodanowe” - http://www.php.net (manual) - news://pl.comp.www.server-side