Sieci komputerowe i bazy danych. Wykład nr 5 PHP. Wprowadzenie

Podobne dokumenty
Lekcja 7 Tablice. Definiowanie tablicy

Elementem tablicy może być każdy typ zmiennej (z innymi tablicami i obiektami włącznie). Tablica dwuwymiarowa, zawiera dwa indeksy, np.

PHP. PHP: Hypertext Preprocessor. mgr inż. Remigiusz Pokrzywiński

Podstawy PHP. Wstęp. Zmienne

echo $tablica[2]; // Wyświetlony zostanie napis "Wpis numer 2";

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.

PHP: bloki kodu, tablice, obiekty i formularze

Umieszczanie kodu. kod skryptu

Systemy internetowe. Wykład 3 PHP. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Serwer WWW Apache. Plik konfiguracyjny httpd.conf Definiujemy m.in.: Aktualne wersje 2.4.6, , zakończony projekt

Lekcja 1. Składnia języka zmienne i podstawowe instrukcje PHP. Do wyświetlania tekstu służy instrukcja echo echo Hello world ;

Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi

1 Podstawy c++ w pigułce.

BAZY DANYCH. Obsługa bazy z poziomu języka PHP. opracowanie: Michał Lech

SSK - Techniki Internetowe

Należy ściągnąć oprogramowanie Apache na platformę

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Oczywiście plik musi mieć rozszerzenie *.php

Bazy Danych i Usługi Sieciowe

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Systemy internetowe Wykład 3 PHP

1 Podstawy c++ w pigułce.

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07

ZMIENNE. Podstawy PHP

Programowanie PHP. Temat 1. Przygotowanie środowiska, prezentacja możliwości PHP

APLIKACJE INTERNETOWE 5 PHP W P R O W A D Z E N I E D O P R O G R A M O W A N I A

Personal Home Page PHP: Hypertext Preprocessor

Dlaczego PHP? - zalety

Obiektowe bazy danych

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

PHP i MySQL dla każdego / Marcin Lis. Wyd. 3. Gliwice, cop Spis treści

Stałe definiuje się używając funkcji define. Przykład: define( PODATEK, 22); define( INSTALACJAOS, 70); define( MS, Microsoft );

Dynamiczne przetwarzanie stron. dr Beata Kuźmińska-Sołśnia

Podstawy programowania skrót z wykładów:

Instrukcje dołączania plików

Programowanie internetowe

Co to jest PHP

Podstawy JavaScript ćwiczenia

Języki programowania wysokiego poziomu. PHP cz.2.

Aplikacje WWW - laboratorium

Laboratorium 1 Wprowadzenie do PHP

Języki skryptowe w programie Plans

Języki skryptowe - PHP. Podstawy PHP. Paweł Kasprowski. pawel@kasprowski.pl. vl07

Zmienne i stałe w PHP

Podstawy Programowania C++

Komunikacja między klientem, a skryptem PHP, oraz operacje na plikach

Cw.12 JAVAScript w dokumentach HTML

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Język PHP. Studium Podyplomowe Sieci Komputerowe i Aplikacje Internetowe. v1.7, 2007/11/23

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Programowanie w języku Python. Grażyna Koba

Pętle. Dodał Administrator niedziela, 14 marzec :27

Języki programowania wysokiego poziomu. PHP cz.3. Formularze

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

Protokół HTTP. 1. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

JAVASCRIPT PODSTAWY. opracowanie: by Arkadiusz Gawełek, Łódź

INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład VII

Bazy danych i strony WWW

5-6. Struktura dokumentu html. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

1 Przygotował: mgr inż. Maciej Lasota

Pętla for. Wynik działania programu:

Internetowe bazy danych

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Tworzenie Stron Internetowych. odcinek 10

PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych:

Zakres treści Czas. 2 Określenie charakteru i tematyki strony. Rodzaje witryn. Projekt graficzny witryny. Opracowanie skryptów

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Michał Bielecki, KNI 'BIOS'

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

ZAAWANSOWANE BAZY DANYCH I HURTOWNIE DANYCH MySQL, PHP

Autor: Joanna Karwowska

Smarty PHP. Leksykon kieszonkowy

Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Kurs PHP. Literatura. Zagadnienia: Wprowadzenie

Projektowani Systemów Inf.

Internetowe bazy danych

Aplikacje WWW - laboratorium

Podstawy Programowania Podstawowa składnia języka C++

JAVAScript w dokumentach HTML (1)

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Ogólny schemat prostego formularza: A może lepiej zamiast przycisku opartego o input tak:

JAVASCRIPT PODSTAWY. opracowanie: by Arkadiusz Gawełek, Łódź

Wykład 5: PHP: praca z bazą danych MySQL

Aplikacje internetowe - laboratorium

Aplikacje WWW - laboratorium

CZYM JEST JAVASCRIPT?

Internetowe bazy danych

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

Wybrane działy Informatyki Stosowanej

Dokonaj analizy poniŝszego kodu i na jego podstawie wyświetl w oknie przeglądarki swoje Imię oraz Nazwisko przy uŝyciu instrukcji echo i print

System operacyjny Linux

Zajęcia 4 - Wprowadzenie do Javascript

Transkrypt:

Sieci komputerowe i bazy danych Wykład nr 5 PHP Wprowadzenie

Informacje podstawowe Twórca: Razmus Lerdorf oficjalna nazwa PHP: Hypertext Preprocessor, język skryptowy osadzany w dokumentach HTML działa po stronie serwera w trakcie konfiguracji wymaga się dołączenia do oprogramowania serwera modułów obsługujących PHP służy do tworzenia dynamicznych stron WWW

Zalety PHP PHP jest dostępne bezpłatnie (pliki wykonywalne oraz kod źródłowy), PHP działa w systemie Unix, Windows 9x, Windows NT oraz Macintosh, PHP doskonale integruje się z serwerem WWW Apache jak i z serwerem Microsoft-u Internet Information Server (IIS), PHP zaprojektowano w języku C, co daje możliwość przyszłego rozszerzania jego możliwości funkcjonalnych, PHP jest technologią popularną,

Wady PHP PHP jest językiem interpretowanym, skrypty nie są wykonywane tak szybko jak programy kompilowane 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 klientserwer. 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.

Porównanie z innymi rozwiązaniami PHP a skrypty CGI skrypty CGI produkują dane wyjściowe w postaci HTML, skrypty PHP są osadzone w dokumencie HTML, PHP a JavaScript polecenia języka JavaScript są interpretowane po stronie klienta, polecenia języka PHP są interpretowane po stronie serwera, w przypadku JavaScript przeglądarka (interfejs użytkownika) musi umieć interpretować JavaScript, w przypadku PHP serwer musi umieć interpretować PHP,

Możliwości PHP obsługa formularzy, Podstawowe cechy generowanie dynamicznej zawartości na stronach, odbiór / nadawanie cookies, wsparcie dla różnorodnych baz danych: mysql, PostgreSQL, Sybase, Oracle, dbase, ODBC,... możliwość współpracy z innymi protokołami sieciowymi: IMAP, POP3, SNMP, NNTP, HTTP, możliwość operowania na surowych gniazdach sieciowych, Wersje PHP PHP4 (PHP 4.0.4), PHP5.2.6 implementacje na różne platformy, www.php.net

Przykładowy skrypt STRONA SERWERA STRONA PRZEGLĄDARKI <html> <html> <head> <head> <title>przykład</title> <title>przykład</title> </head> </head> <body> <body> php echo "Hej, to jest skrypt PHP!"; Hej, to jest skrypt PHP! print("<h2>a to też PHP<H2>"); <H2>A to też PHP<H2> </body> </body> </html> </html>

Wstawianie skryptów PHP Aby plik był rozpoznany przez serwer WWW jako skrypt PHP musi on mieć odpowiednie rozszerzenie. Rozszerzenia te można zdefiniować w konfiguracji serwera WWW, ale zazwyczaj jest to.php3 (dla PHP w wersji 3),.php lub php4 (dla PHP w wersji 4) i.phtml (dla PHP w wersji starszej niż 3). Po nadaniu plikowi takiego rozszerzenia serwer będzie wiedział, że plik ten nie jest przeznaczony do bezpośredniego wyświetlenia (jak w przypadku plików HTML), ale że najpierw trzeba go przepuścić przez parser PHP.

Wstawianie skryptów PHP echo ("to jest najprostsza metoda, podobna do SGML'u\n"); ; php echo("jeśli serwujesz pliki XML, użyj tej metody\n");?&>; <script language="php"> echo ("niektóre edytory (np. FrontPage) nie lubią przetwarzania instrukcji"); </script> <% echo ("Możesz też użyć metody podobnej do tej z ASP"); %> <%= ; # To jest skrót dla "<%echo.." %>;

Zakańczanie instrukcji Jedną z głównych zasad języka PHP jest umieszczenie na końcu każdej instrukcji (nie koniecznie linii) znaku średnika (';'). Można go pominąć tylko jeśli w danym miejscu następuje przejście do trybu HTML echo "To jest test"; echo "To jest test"

Komentarze echo "To jest test komentarzy"; // Ta metoda znana jest //z języków C/C++ echo "A to drugi test"; # A ta z powłok Uniksowych echo "Test komentarzy"; /* Tu jest początek komentarza tu dalej trwa a tu się kończy */

Zmienne Zmienna jest to identyfikator znakowy, któremu przypisano jakąś wartość. W języku PHP zmienne oznacza się za pomocą znaku dolara ('$') przed wspomnianym identyfikatorem. Obsługa zmiennych w PHP jest uproszczona do minimum. Zmienna jest inicjalizowana (to znaczy rezerwowany jest dla niej pewien obszar w pamięci) przy pierwszym jej użyciu.

Zmienne Nazwy zmiennych muszą zaczynać się od litery (dużej lub małej) lub "underscore" (dolna kreska - '_') Dalej mogą się składać z dowolnej ilości liter, cyfr i znaków o kodzie ASCII powyżej 127. Przy nazwach zmiennych respektowana jest wielkość znaków - zmienne $Test i $test to dwie różne zmienne.

Zmienne $nazwa = 1; // Zmiennej "nazwa" przypisywana jest wartość liczbowa 1 $druga_nazwa = "Tekst"; // Zmiennej "druga_nazwa" przypisany jest ciąg znaków "Tekst" $trzecia_nazwa = $nazwa; // Zmiennej "trzecia_nazwa" przypisywana //jest wartość zmiennej "nazwa" echo "To jest $druga_nazwa"; // Powinien wyświetlić się napis "To jest Tekst" echo '$druga_nazwa'; // Powinien wyświetlić się napis "$druga_nazwa" echo $nazwa; // Powinna wyświetlić się cyfra 1

Typy zmienych W PHP zmienne mają następujące typy: liczby całkowite (integer) liczby rzeczywiste (double) ciągi (string) tablice (array) obiekty (object) PHP potrafi konwertować zmienne całkowite zapisane w różnych formatach liczbowych: $a = 1234; # liczba dziesiętna $a = -123; # liczba ujemna $a = 0123; # liczba ósemkowa (równoznaczne z dziesiętnym 83) $a = 0x12; # liczba szesnastkowa (równoznaczne z dziesiętnym 18)

Zmiana typu Zazwyczaj nie jest konieczne określenie typu zmiennej - PHP sam to ustala, zależnie od kontekstu. Przykład: $blah = "0"; // $blah jest ciągiem (ASCII 48) $blah++; // $blah jest ciągiem "1" (ASCII 49) $blah += 1; // $blah jest teraz wartością całkowitą (2) $blah += 1.3; // $blah jest wartością rzeczywistą (3.3) $blah = 5 + "10 Malutkich swinek"; // jest wartością całkowitą (15) $blah = 5 + "10 Małych swiń"; // jest wartością całkowitą (15)

Rzutowanie typów Dozwolone typy rzutowań: (int), (integer) - t. całkowity (real), (double), (float) - t. rzeczywisty (string) - rzutuj do ciągu (array) - rzutuj do tablicy (object) - rzutuj do obiektu $liczba_calkowita = 10; $liczba_rzeczywista = (real) $liczba_calkowita;

Rzutowanie typów Użycie funkcji settype. Funkcja ta pobiera 2 argumenty. Pierwszym jest nazwa zmiennej do ustalenia typu, a drugim ciąg określający nowy typ zmiennej. Te typy to: "integer" "double" "string" "array" "object" $a = 10.3; echo "$a <br>"; // Wyświetlona wartość to "10.3" settype($a, "integer"); echo "$a <br>"; // Wyświetlona wartość to "10"

Predefiniowane zmienne Zmienne ustawiane przez serwer WWW np. SERVER_NAME - Nazwa hosta serwera na którym skrypt jest uruchamiany. Jeśli skrypt pracuje na wirtualnym hoście, to zmienna przyjmie jako wartość nazwę wirtualnego hosta. Zmienne ustawiane przez PHP argv - Tablica argumentów przkazywanych do skryptu. Jeśli skrypt jest uruchamiany z linii poleceń, to zmienna ta daję dostęp do argumentów w stylu języka C. Jeśli jest wywołany przez metodę GET, to zmienna ta zawierać będzie ciąg parametrów (query string). PHP_SELF - Nazwa pliku aktualnie wykonywanego skryptu, względna do katalogu głównego dokumentów. Ta zmienna jest niedostępna heśli PHP jest uruchamiany z linii poleceń. HTTP_GET_VARS - Tablica asocjacjna zmiennych przekazanych do skryptu przez metodę GET. Dostępna tylko jeśli włączone zostało śledzenie zmiennych przez ustawienie w konfiguracji PHP opcji track_vars lub komendą php_track_vars. HTTP_POST_VARS - Tablica asocjacjna zmiennych przekazanych do skryptu przez metodę POST. Dostępna tylko jeśli włączone zostało śledzenie zmiennych przez ustawienie w konfiguracji PHP opcji track_vars lub komendą php_track_vars.

Stałe W PHP występują także tzw. stałe, czyli identyfikatory znakowe, których wartości nie można zmienić. Stałych, w odróżnieniu od zmiennych, używa się bez znaku dolara na początku. FILE - Nazwa pliku ze skryptem który jest aktualnie przetwarzany. Jeśli stała ta użyta jest wewnątrz pliku który został zainkludowany (o poleceniu include w dalszej części kursu), to podana zostanie nazwa pliku zainkludowanego, a nie pliku nadrzędnego. LINE - Numer linii w skrypcie która aktualnie jest przetwarzana. Jeśli stała ta użyta jest wewnątrz pliku który został zainkludowany, to podany zostanie numer linii przetwarzanej w pliku zainkludowanym. PHP_VERSION - Ciąg reprezentujący wersję parsera PHP aktualnie używaną. PHP_OS - Nazwa systemu operacyjnego na którym uruchamiany jest parser PHP. TRUE - Logiczna wartość prawdy. FALSE - Logiczna wartość fałszu.

Operatory Najprościej mówiąc są to symbole, które służą do operacji na zmiennych. Operatory dzielą się na: operatory arytmetyczne, które służą do operacji na liczbach, operatory przypisania służące do przypisywania zmiennym wartości, operatory operacji bitowych, operatory porównania niezbędne do instrukcji warunkowych, operator kontroli błędów, operator wykonania służący do uruchamiania zewnętrznych programów, operatory inkrementacji i dekrementacji, operatory logiczne, operatory ciągu.

Operatory arytmetyczne

Operator przypisania $nazwa = $inna_nazwa = $trzecia_nazwa = 5;

Operatory operacji bitowych Operatrory operacji bitowych pozwalają na przestawianie pojedyńczych bitów zmiennych.

Operatory porównania

Operator kontroli błędów Operator kontroli błędów ('@') powoduje, że wyrażenie przed którym postawiono ten znak nie spowoduje wyświetlenia się jakiegokolwiek błędu lub ostrzeżenia. /* Jeden z najczęstszych błędów SQL (za dużo o jeden apostrof) */ $res = @mysql_query ("select nazwa, kod from 'lista") or die ("Zapytanie się nie powiodło: błąd to ''");

Operator wywołania Operator ten służy do uruchamiania zewnętrznych programów lub poleceń powłoki. $wynik = `ls -l /home/`; echo $wynik; Po uruchomieniu tego skryptu wyświetlona zostanie zawarto ść katalogu /home na serwerze.

Operatory inkrementacji i dekrementacji Służą one do zmniejszenia lub zwiększenia wartości danej zmiennej o 1.

Operatory logiczne Operatory logiczne służą do budowania bardziej skomplikowanych instrukcji warunkowych - do łączenia kilku warunków w jednej instrukcji.

Operator ciągu Operator ciągu ('.' - kropka) służy do łączenia kilku ciągów w jedną całość. $zmienna1 = "Wartość zmiennej \"zmienna2\" to"; $zmienna2 = 5; echo $zmienna1." ".$zmienna2; // Powinno się wyświetlić: // "Wartość zmiennej "zmienna2" to 5"

Instrukcje warunkowe Używa się jej do wykonania pewnej instrukcji (lub bloku instrukcji), ale tylko w pewnych okolicznościach - zostanie spełniony określony warunek (lub cały zestaw warunków). if(wyrażenie_warunkowe) instrukcja wykonywana jeśli spełniony zostanie warunek else if(inne_wyrażenie_warunkowe) instrukcja wykonywana jeśli spełniony zostanie drugi warunek, a pierwszy nie else instrukcja wykonywana jeśli nie zostanie spełniony żaden z warunków if( ($a > $b $a > $c) && // Nawiasy klamrowe nie są potrzebne - to $d == $e ) // 2 linie ale jedna instrukcja echo 'Zmienna $a jest większa od $b a zmienna $d jest równa $e, '. 'więc ten tekst pokaże się.'; // Taka konstrukcja jest dozwolona

Pętla FOR for ( inicjalizacja zmiennych ; sprawdzenie warunku ; modyfikacja zmiennych) { blok wyrażeń } Przykład: for( $x = 1; $x <= 10; $x++ ) echo $x."<br>";

Pętla while while( warunek ){... instrukcje... } Przykład: $x=1; while($x <= 10){ echo $x."<br>"; $x++; }

Pętla do...while Od zwykłej pętli while różni się ona tym, że polecenia zawarte w pętli będą przynajmniej raz wykonane - w przypadku pętli while tak być nie musi, to znaczy jeśli za pierwszym razem warunek nie zostanie spełniony to polecenia z pętli nigdy nie zostaną wykonane. do{... instrukcje... }while( warunek );

Przerywanie wykonań pętli Czasem zachodzi potrzeba przerwania danej iteracji (powtórzenia) pętli i przejścia do następnej iteracji. Istenie też polecenie, które powoduje całkowite wyjście z pętli - nie tylko z bieżącej iteracji. for($x = 1; $x<=100; $x++) { if($x % 2!= 0) continue; } echo $x." "; for($x = 0; $x<10; $x++) { } if($nazwa == "Test1") break;

switch($zmienna){ case 'wartość1':... instrukcje... break; case 'wartość2':... instrukcje... break; default:... instrukcje... } Składnia switch $i = 3; Składnia switch jest instrukcją warunkową, ale jedną zmienną można porównać nie z jedną wartością, ale z kilkoma. switch($i){ case 0: case 1: case 2: case 3: echo "Zmienna $i jest mniejsza bądź równa od trzech\n"; break; case 4: echo "Zmienna $i jest równa cztery\n"; break; default: echo "Zmienna $i jest większa od czterech\n"; }

Tablice Tablice są bardzo specyficznym typem zmiennych - są to, najprościej mówiąc, zmienne zawierające w sobie uporządkowany zbiór zmiennych. Do zmiennych tych uzyskuje się dostęp przez liczbę w nawiasie kwadratowym podane bezpośrednio po nazwie zmiennej - tablicy. Liczba ta to tak zwany indeks - numer kolejny zmiennej w tablicy. Tak samo przypisuje się wartość do tablicy. $tablica[0] = "Wpis numer 0"; $tablice[1] = "Wpis numer 1"; $tablica[2] = "Wpis numer 2";

Tablica asocjacyjna W PHP występuje też inny rodzaj tablic, tak zwane tablice asocjacyjne (zwane też czasem haszami - hash table). Są to tablice, w których zamiast indeksów liczbowych używa się identyfikatorów znakowych (kluczy) $tablica["imie"] = "Jan"; $tablica["nazwisko"] = "Kowalski"; $tablica["adres"] = "Polna 1"; echo $tablica["imie"]." ".$tablica["nazwisko"].", ul. ".$tablica["adres"]."\n";

Przeglądanie tablic $tbl[] = 1; $tbl[] = 2; $tbl[] = 3; $tbl[] = 4; $tbl[] = 5; for( $x = 0; $x < 5; $x++ ) { // Pętla wykona się 5 razy (0...4) } echo $tbl[$x];

Przeglądanie tablic Zwykła tablica indeksowana Tablica asocjacyjna $tbl[] = 1; $tbl[] = 2; $tbl[] = 3; $tbl[] = 4; $tbl[] = 5; for( $x = 0; $x < count($tbl); $x++ ) { echo $tbl[$x]; } $tablica["imie"] = "Jan"; $tablica["nazwisko"] = "Kowalski"; $tablica["adres"] = "Polna 1"; while( list($klucz, $wartosc) = each($tablica) ) echo "$klucz => <BR>";

Sortowanie tablic asort() - sortuje tablice asocjacyjne zachowując przypisanie kluczy do wartości $owoce = array ( "d"=>"mango", "a"=>"papaja", "b"=>"banan", "c"=>"aronia"); asort ($owoce); // Funkcja ta powoduje powrót do pierwszego elementu tablicy reset ($owoce); while (list ($klucz, $wartosc) = each ($owoce)) { echo "$klucz = $wartosc\n"; } Wynikiem działania powyższego przykładu powinno być: c = aronia b = banan d = mango a = papaja

Sortowanie tablic arsort() - sortuje w odwrotnej kolejności tablice asocjacyjne zachowując przypisanie kluczy do wartości. Funkcja prawie identyczna jak poprzednia, tyle że dane sortowane są "od tyłu". ksort() - sortuje tablice asocjacyjne według kluczy. Poprzedni przykład po podmianie funkcji asort na ksort powinna dać taki wynik: a = papaja, b = banan, c = aronia, d = mango rsort() - sortuje zwykłe tablice (nie asocjacyjne) w odwróconej kolejności sort() - sortuje zwykłe tablice (nie asocjacyjne) w kolejności alfabetycznej uasort() - funkcja sortująca tablice asocjacyjne za pomocą zdefiniowanej przez użytkownika funkcji porównującej elementy (nazwa funkcji jest podawana za pomocą drugiego parametru) usort() - funkcja sortująca zwykłe tablice za pomocą funkcji zdefiniowanej przez użytkownika uksort() - funkcja sortująca tablice asocjacyjne według klucza za pomocą funkcji zdefiniowanej przez użytkownika.

Tworzenie tablic z ciągów PHP umożliwia zamianę ciągów na tablice i odwrotnie. Zamiana ciągu na tablicę jest bardzo przydatna jeśli zachodzi potrzeba wyciągnięcie jakiegoś fragmentu danych z ciągu. Załóżmy że w odczytaliśmy z pliku z danymi linię z logu zapisanego przez licznik WWW: "12/11/2000;19:23:33;Netscape Navigator;192.168.1.1". Jak widać dane rozdzielone są średnikami. Do rozdzielania ciągów na tablicę służy funkcja explode(). $tablica = explode(";", $dane);

Tworzenie ciągów z tablic Czasem potrzebne jest działanie w drugą stronę: złącznie pól tablicy w jeden ciąg, w którym pola oddzielone są jakimś znakiem (lub kilkoma). Do tego służy funkcja implode(). $dane = implode(";", $tablica);

Funkcje Funkcja jest kawałkiem kodu, który można wywołać podając jej nazwę. Wcześniej podane zostało kilka funkcji dostarczanych przez PHP, takich jak array(), each(), list(), explode() czy implode(). Jak można zauważyć, funkcje rozpoznaje się po nawiasach występujących po ich nazwie. W nawiasach (jeśli funkcja tego wymaga) podaje się parametry dla danej funkcji. Niektóre funkcje zwracają jakąś wartość, a więc wywołanie takiej funkcji można wstawić jak dowolne inne wyrażenie do listy parametrów innej funkcji czy np. do obliczenia. Przykładowa postać funkcji php function suma($parametr1 = 0, $parametr2 = 0) { $wartosc = $parametr1 + $parametr2; return $wartosc; }

Włączanie kodu z pliku Instrukcje pozwalające na włączenie do kodu zawartość innego pliku także zawierającego kod PHP. Instrukcjom podaje się jeden parametr - nazwę pliku do włączenia do kodu. require - p lik i d o łąc z a n e s ą d o k o d u je s z c z e p rz e d p a rs o w a n ie m, w k a żd y m m ie js c u g d z ie z n a jd u je s i ę in s tru k c ja. inc lude - p lik i d o łąc z a n e s ą d o k o d u p o p a rs o w a n iu ; in s tru k c ja ta n a d a je s i ę d o d o łąc z a n ia p lik ó w k tó ry c h n a z w a p o b ie ra n a je s t z e z m ie n n e j. rea dfile - d a n e p o b ra n e z p lik u n ie s ą p rz e tw a rz a n e p rz e z P H P, w ięc fu n k c ja ta n a d a je s i ę ty lk o d o w y św ie tla n ia p lik ó w H T M L b ąd ź c z y s to te k s to w y c h.

Zasięg zmiennych Zmienne globalne Zmienne statyczne $a = 23; function aaa(){ echo $a; } aaa(); $a = 23; function aaa(){ global $a; echo $a; } aaa(); function aaa(){ $a = 0; echo $a; $a++; } aaa(); aaa(); aaa(); function aaa(){ static $a = 0; echo $a; $a++; } aaa(); aaa(); aaa(); Wyniki wykonania programu: nic 23 0 0 0 0 1 2

Tablice superglobalne Tworzone przez PHP - użytkownik nie może samemu tworzyć takich tablic. Zawierają one dane przekazywane do PHP : metodami GET - $_GET, metodami POST - $_POST, informacje o przekazanych plikach - $_FILES, dane z ciasteczek - $_COOKIE sesji - $_SESSION Mają one zastąpić tablice $HTTP_*_VARS, które ze względu na kompatybilność są jeszcze obecne. Różnica między tablicami superglobalnymi a tymi używanymi wcześniej jest taka, że tablice superglobalne dostępne są w dowolnym miejscu kodu, bez potrzeby użycia instrukcji global.

Formularze Formularze HTML wykorzystywane są do pobierani informacji od użytkownika. Wszystkie dane z formularza trafiają do odpowiednich tablic asocjacyjnych o nazwach kluczy takich, jak nazwy pól formularza. Jeśli w konfiguracji PHP włączona zostanie opcja register_globals (jest ona domyślnie wyłączona od wersji 4.2.0), to stworzone zostaną od razu zmienne o nazwach takich jak nazwy pól formularza. Przekazywanie parametrów: metody GET i POST. Zależnie od metody, zmienne trafiają do odpowiednich tablic asocjacyjnych. Dane przesłane metodą: GET trafiają do tablicy $_GET (lub $HTTP_GET_VARS) POST trafiają do tablicy $_POST (lub $HTTP_POST_VARS).

Formularze plik jeden.html <html> <head> <title> Test formularza </title> </head> <body> <form action="dwa.php" method="get"> Imię: <input type=text name="imie"/><br/> Nazwisko: <input type=text name="nazwisko"/><br/> Proszę o fakturę do zamówienia: <input type=checkbox name="faktura"/><br/> Chcę zamówić:<br/> <input type=radio name=zamow value="kola"/>coca-colę<br> <input type=radio name=zamow value="fanta"/>fantę<br> <input type=radio name=zamow value="sprite"/>sprite'a<br> <input type=submit value="wyślij"/> </form> </body> </html>

Formularze plik dwa.html <html> <head> <title> Wyniki </title> </head> <body> Imię: php echo $_GET['imie']<br> Nazwisko: php echo $_GET['nazwisko']<br> Faktura: php echo ($_GET['faktura'] == 'on'? 'Tak' : 'Nie')<br> Zamówienie: php switch($_get['zamow']){ case "kola": echo "Coca-cola"; break; case "fanta": echo "Fanta"; break; case "sprite": echo "Sprite"; } </body> </html> break;

Odnośniki Istnieje możliwość przekazywania niedużej liczby parametrów za pomocą zwykłych odnośników dostępnych w języku HTML. W takim przypadku wykorzystuje się metodę GET - konstruuje się odnośnik, na końcu którego należy umieścić znak zapytania a po nim oddzielone ampersandami (&) pary parametr=wartość, np: <a href="strona.php?imie=franek&nazwisko=kowalski">kliknij tu</a>

Obsługa sesji Umożliwia on przekazywanie parametrów między stronami w łatwy sposób. Zmienne są przechowywane po stronie serwera a u klienta trzymane jest tylko ID sesji. Obsługa sesji wymaga to posiadania PHP skompilowanego z opcją --enable-trans-sid. session_start() - rozpoczęcie sesji; PHP sprawdza, czy przypisano już ID sesji. Jeśli tak, to odczytuje zmienne zarejestrowane w tej sesji. Jeśli nie, generowany jest nowy, unikalny identyfikator sesji. session_register( nazwa_zmiennej ) - rejestracja zmiennej w celu rozpoczęcie śledzenia jej wartość session_unregister( nazwa_zmiennej ) - powoduje, że PHP "zapomina" o zmiennej Zmienne zarejestrowane w sesji przechowywane są w tablicy $_SESSION. Kluczem tej tablicy jest oczywiście nazwa zarejestrowanej zmiennej.

Obsługa sesji session_start(); if (!isset($_session['count'])) { // jeśli zmienna nie jest zarejestrowana $_SESSION['count'] = 0; // przypisz jej początkową wartość } else { // jeśli jest zarejestrowana $_SESSION['count']++; // zwiększ jej wartość } echo 'Strona odczytana '.$_SESSION['count'].' razy w ciągu tej sesji';

Porównywanie ciągów strcmp() - podstawową funkcją służącą do porównywania ciągów. Parametrami są dwa ciągi tekstowe, które mają być porównane. Funkcja ta zwraca wartość 0 jeśli ciągi są takie same, wartość większą od zera jeśli pierwszy ciąg jest większy od drugiego lub wartość mniejszą od zera jeśli pierwszy ciąg jest mniejszy od drugiega. Funkcja ta rozróżnia wielkość znaków. funkcji strcasecmp() porównuje dwa ciągi nie biorąc pod uwagę wielkości znaków (parametry i wartości zwracane takie jak przy funkcji strcmp). funkcja strncmp() porównuje tylko taką ilość początkowych znaków z podanych ciągów, jaka została podana jako trzeci parametr tej funkcji. strncasecmp() wersja funkcji strncmp() ignorująca wielkość znaków.

Wyciąganie fragmentów ciągów substr $data = "1992/11/19"; $rok = substr($data, 0, 4); $tekst = "To jest tekst. Tego zdania nie będzie widać."; $zdanie = substr($tekst, 0, strpos($tekst, ".")); explode $data = "1992/11/19"; $tablica = explode("/", $data); split $tekst = "19/11/1982 01:43:12.10"; $tablica = split("[ /:.]", $tekst);

Podmienianie fragmentów ciągów $tekst = "Jeśli jesteś za podnieś rękę"; $wynik = str_replace("za", "przeciw", $tekst); Podmienianie znaków w ciągach Funkcja strtr - przyjmuje 3 parametry: ciąg w którym będą podmieniane znaki, ciąg zawierający znaki do podmiany ciąg zawierający znaki, na które te podane w drugim parametrze będą podmienione.

Inne funkcje htmlspecialchars($string) - funkcja ta zamienia znaki używane w kodzie HTML na takie, które zostaną wyświetlone prawidłowo, a nie będą interpretowane przez przeglądarkę jako znacznik HTML. Wszystkie wystąpienia znaku < zostają zamienione na znak < a znaku > na &apm;gt;. Funkcja ta jest bardzo przydatna gdy zachodzi potrzeba wyświetlenia kodu źródłowego HTML, który nie powinien być interpretowany przez przeglądarkę. htmlentities($string) - jest to rozszerzona wersja funkcji htmlspecialchars(). Zamienia wszystkie znaki na odpowiadające im kody HTML, jeśli takowe istnieją. Np. wszystkie wystąpienia znaku ó zamieniane są na &oacute. chop($string), trim($string), ltrim($string), rtrim($string) - funkcje te mają za zadanie usunięcie 'białych znaków' (spacja, tabulator, znacznik nowego wiersza) z początku lub końca ciągu. Funkcja chop(), tak jak i rtrim(), usuwa te znaki z końca ciągu, ltrim() z początku a trim() i z początku i końca. nl2br($string) - bardzo przydatna funkcja służąca do zamiany znaków końca wiersza na HTML'owe znaczniki <BR> (bardzo przydatne przy wyświetlaniu sformatowanego tekstu w oknie przeglądarki). strip_tags($string) - usuwa wszystkie znaczniki HTML z podanego jako parametr ciągu. Możliwe jest podanie opcjonalnego drugiego parametru - ciągu, który zawiera nazwy znaczników HTML, które mają zostać pozostawione.

Komunikacja z bazą MySQL $host = "149.156.115.209"; $baza = "skbd"; $user = "reader"; $pwd = ""; $connection = mysql_connect($host, $user, $pwd) or die("couldn't connect :(."); $db = mysql_select_db($baza, $connection) or die("couldn't select database."); $sql = "SELECT indeks,grupa,kierunek FROM `studenci` ORDER BY 1; "; $result = @mysql_query($sql,$connection) or die("couldn't execute query."); $num = mysql_num_rows($result); if($num>0) while($res = mysql_fetch_array($result)){ echo $res[0]. $res[0]. $res[0]; } }