Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałDorofiej Piosik Został zmieniony 11 lat temu
1
Wstęp do baz danych - język programowania PHP
Dr Andrzej Bąk
2
Cechy PHP Składnia spokrewniona z innymi językami jak C, Pascal
Nie trzeba dołączać żadnych bibliotek ani dyrektyw kompilatora. PHP zawiera zestaw zabezpieczeń dla programistów i administratorów, działający na poziomie systemu oraz aplikacji.
3
Cechy PHP - 2 Jest językiem zagnieżdżanym, niezwykle elastycznie spełnia wymagania programisty. Można go integrować z JavaScript, HTML, XML i innymi. Skrypty PHP są kompilowane w całości po stronie serwera a potem wysyłane do użytkownika, dlatego nie ma problemów ze zgodnością przeglądarek PHP - kody źródłowe środowiska i wersje instalacyjne dla Windows są całkowicie darmowe. Również serwer WWW Apache.
4
Skąd pobrać PHP? http://www.php.net/downloads.php PHP 5.2.6 installer
około 11 MB komplet Można też pobrać sobie dokumentację
5
Serwer Apache Do pobrania z następujących miejsc:
ver
6
MySQL PHP bardzo dobrze współpracuje z serwerem baz danych MySQL
Pakiet MySQL można pobrać z witryny pod adresem
7
Aby odróżnić kod PHP od innych elementów na stronie WWW
Musimy oznaczyć kod PHP stosując: Znaczniki domyślne <?php print „ty”;?> Znaczniki skrócone <? print „ty”;?> Znaczniki skryptowe: <script language=„php”> print „ty”; </script> Znaczniki ASP (Active Server Pages) <% print „ty”; %> lub
8
Zagnieżdżanie PHP pozwala na zagnieżdżanie wielu skryptów w różnych miejscach strony internetowej, jak i na zagnieżdżanie kodu HTML wewnątrz instrukcji print (echo).
9
Prosty przykład zastosowania PHP
Do paska tytułu i nie tylko można dodać aktualną datę: <title> <?php print date(„m.d.y”);?> </title> spowoduje wyświetlenie daty w pasku tytułu.
10
Komentarze Jednowierszowy, podobnie jak w C i JavaScript
// lub # Wielowierszowy: /* przykład komentarza wielowierszowego */
11
Zmienne w php Nie musimy deklarować typu zmiennej <?php
$nazwa = 1; // Zmiennej "nazwa" przypisywana jest wartość liczbowa 1 $druga_nazwa = "Tekst"; $trzecia_nazwa = $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 ?>
12
Typy danych Liczby całkowite Liczby rzeczywiste (zmiennopozycyjne)
Ciągi znakowe, w tym pojedyncze znaki - nie ma typu char Tablice i wektory Obiekty True, false (boolean)
13
Liczby <?php ?> $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) ?>
14
Zmiana typu <?php ?>
$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 = $foo + 1.3; // $blah jest wartością rzeczywistą (1.3) $blah = 5 + "10 Malutkich Świnek"; // $blah jest wartością całkowitą (15) $blah = 5 + "10 Małych Świń"; // $blah jest wartością całkowitą (15) ?>
15
Rzutowanie typów Rzutowanie typów odbywa się przez podanie nowego typu w nawiasie przed zmienną lub wartością, której typ chcemy zmienić. <?php $liczba_calkowita = 10; $liczba_rzeczywista = (real) $liczba_calkowita; ?> Dozwolone typy rzutowań (int), (integer) - rzutuj do typu całkowitego (real), (double), (float) - rzutuj do typu rzeczywistego (string) - rzutuj do ciągu (array) - rzutuj do tablicy (object) - rzutuj do obiektu
16
Rzutowanie typów Drugim sposobem, trwałym, jest 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. <?php $zmienna = 10.3; echo "$zmienna <br>"; // Wyświetlona wartość to "10.3" settype($zmienna, "integer"); echo "$zmienna <br>"; // Wyświetlona wartość to "10" ?>
17
Operatory Operatory są to najprościej mówiąc 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 i operatory ciągu.
18
Operator ciągu Operator ciągu (’.’ - kropka) służy do łączenia kilku ciągów w jedną całość. <?php $zmienna1 = "Wartość zmiennej 'zmienna2' to"; $zmienna2 = 5; echo $zmienna1." ".$zmienna2; // Powinno się wyświetli // "Wartość zmiennej 'zmienna2' to 5" ?>
19
Operatory arytmetyczne
$a + $b; Dodawanie Suma $a i $b. $a - $b; Odejmowanie Różnica $a i $b. $a * $b; Mnożenie Iloczyn $a i $b. $a / $b; Dzielenie Iloraz $a i $b (bez reszty). $a % $b; Modulo Reszta z dzielenia $a przez $b.
20
Operator przypisania Podstawowym operatorem przypisania jest symbol ‘=’. Oczywiście nie oznacza on ‘jest równe’. Wyrażenie $b = 5 oznacza, że zmienna $b przyjmuje wartość równą 5. Zmiennej można przypisać także wartość innej zmiennej: $b = 5; $a = $b; - zmienna $a przyjmie wartość 5.
21
Operatory porównania Przykład Nazwa Wynik $a == $b Równy
Prawda jeśli $a jest równe $b. $a === $b Identyczny Prawda jeśli $a jest równe $b i są tego samego typu. (tylko PHP4) $a != $b Nie równe Prawda jeśli $a nie jest równe $b. $a !== $b Nie identyczny Prawda jeśli $a nie jest równe $b lub nie są tego samego typu. (tylko PHP4) $a < $b Mniejsze Prawda jeśli $a jest mniejsze niż $b. $a > $b Większe Prawda jeśli $a jest większe niż $b. $a <= $b Mniejsze lub równe Prawda jeśli $a jest mniejsze lub równe $b. $a >= $b Większe lub równe Prawda jeśli $a jest większe lub równe $b.
22
Operator wywołania Operator ten służy do uruchamiania zewnętrznych programów lub poleceń powłoki. Wystarczy wpisać polecenie pomiędzy znaki odwróconego apostrofu (’`') aby zostało ono wykonane. Przykład: wyświetlenie zawartości katalogu /home na serwerze <?php $wynik = `ls -l /home/`; echo $wynik; ?>
23
Operatory inkrementacji i dekrementacji
Operatory te występują w większości języków programowania. Służą one do zmniejszenia lub zwiększenia wartości danej zmiennej o 1. Każdy operator można stosować na 2 sposoby: preinkrementacja/predekrementacja - najpierw wartość zmiennej zostanie zmieniona, a później zwrócona, lub postinkrementacji/postdekrementacji - najpierw zostanie zwrócona wartość zmiennej, a następnie wartość zmiennej zostanie zmieniona.
24
Operatory inkrementacji i dekrementacji
Przykład Nazwa Wynik ++$a Preinkrementacja Zwiększa $a o jeden, a następnie zwraca $a. $a++ Postinkrementacja Zwraca $a, a następnie zwiększa $a o jeden. –$a Predekrementacja Zmniejsza $a o jeden, po czym zwraca $a. $a– Postdekrementacja Zwraca $a, po czym zmniejsza $a o jeden.
25
Operatory inkrementacji i dekrementacji
<?php echo "Postinkrementacja"; $a = 5; echo "Powinno być 5: " . $a++ . "\n"; echo "Powinno być 6: " . $a . "\n"; echo "Preinkrementacja"; echo "Powinno być 6: " . ++$a . "\n"; echo "Powinno być 6: " . $a . "\n"; ?> <?php echo "Postdekrementacja"; $a = 5; echo "Powinno być 5: " . $a-- . "\n"; echo "Powinno być 4: " . $a . "\n"; echo "Predekrementacja"; echo "Powinno być 4: " . --$a . "\n"; ?>
26
Operatory logiczne Operatory logiczne służą do budowania bardziej skomplikowanych instrukcji warunkowych - do łączenia kilku warunków w jednej instrukcji. Przykład Nazwa Wynik $a && $b AND Prawda, jeśli $a i $b są prawdą $a || $b OR Prawda, jeśli $a lub $b są prawdą ! $a NOT Prawda, jeśli $a nie jest prawdą
27
Instrukcje warunkowe Instrukcje warunkowe są podstawą każdego języka programowania. Używa się jej do wykonania pewnej instrukcji (lub bloku instrukcji), ale tylko w pewnych okolicznościach – wtedy gdy zostanie spełniony określony warunek (lub cały zestaw warunków). <?php if(wyrażenie warunkowe) instrukcja wykonywana jeśli spełniony zostanie warunek elseif(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 ?>
28
Instrukcje warunkowe <?php $a = 2; $b = 5; $c = 1; if($a > $b)
if($a > $b) echo "$a jest większe od $b"; elseif ($b > $c) echo "$b jest większe od $c"; else echo "$c jest większe od $a i $b"; ?> Jeśli chcemy, aby po sprawdzeniu warunku wykonane zostało nie jedno, ale kilka poleceń, to te polecenia trzeba ująć w nawiasy klamrowe. Bez tego warunkiem objęta by była tylko jedna instrukcja po instrukcji if. Instrukcje mogą być zagnieżdżane wewnątrz siebie.
29
Instrukcje warunkowe - przykład
<?php $a = 6; $b = 5; $c = 1; if($a > $b) { echo "$a jest większe od $b"; if($a > $c) echo " i od $c"; // Powinien zostać wyświetlony napis "6 jest większe od 5 i od 1" } ?>
30
Pętla FOR Czasem zachodzi potrzeba wykonania jakiejś czynności określoną ilość razy. Z pomocą przychodzi jedna z najczęściej używanych składni w większości języków programowania, czyli pętla FOR. Ogólny zapis wygląda tak: <?php for( inicjalizacja zmiennych; sprawdzenie warunku; modyfikacja zmiennych) { blok wyrażeń } ?> Przykład <?php for( $x = 1; $x <= 10; $x++ ) echo $x."<br>";
31
Pętla while Innym rodzajem pętli jest pętla WHILE. Jest ona wykorzystywana w sytuacjach, kiedy niezbędne jest wykonywanie jakiejś operacji dopóki nie zostanie spełniony warunek. <?php while( warunek ) { ... instrukcje } ?>
32
Pętla while - przykład <?php ?> $x=1; while($x <= 10){
$x=1; while($x <= 10){ echo $x."<BR>"; $x++; } ?>
33
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. W przypadku tej pętli zostano one wykonane przynajmniej ten pierwszy raz. <?php do { ... instrukcje } while( warunek ); ?>
34
Przerywanie wykonań pętli
Czasem zachodzi potrzeba przerwania danej iteracji (powtórzenia) pętli i przejścia do następnej iteracji. Z pomocą wtedy przychodzi instrukcja continue. Wystarczy wstawić ją w odpowiednie miejsce wewnątrz pętli. Wykonanie poniższego kodu spowoduje wyświetlenie liczb nieparzystych <?php for($x = 1; $x<=100; $x++) { if($x % 2 != 0) continue; echo $x." "; } ?>
35
Składnia switch Składnia switch jest instrukcją warunkową, ale jedną zmienną można porównać nie z jedną wartością, ale z kilkoma. Niestety nie można konstruować złożonych warunków - możliwe jest tylko proste porównywanie (równoważne instrukcji: if($zmienna==”wartość”) instrukcja). <?php switch($zmienna){ case 'wartość1': ... instrukcje ... break; case 'wartość2': ... default: } ?>
36
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.
37
Tablice <?php ?> $tablica[0] = "Wpis numer 0";
$tablica[0] = "Wpis numer 0"; $tablice[1] = "Wpis numer 1"; $tablica[2] = "Wpis numer 2"; echo $tablica[2]; // Wyświetlony zostanie napis "Wpis numer 2"; ?>
38
Tablice Aby dodać kolejny wpis na końcu tabeli wystarczy przy przypisywaniu wartości nie wpisywać indeksu do nawiasów kwadratowych. Jeśli w ten sposób dodawane są wpisy do nowej tablicy, to pierwszy wpis ma indeks 0. Indeks można też podawać ze zmiennej, z innej tablicy czy funkcji - z dowolnego wyrażenia zwracającego wartość.
39
Tablice <?php ?> $tab1[] = 1; $tab1[] = 0; $tab1[] = 3;
$tab1[] = 1; $tab1[] = 0; $tab1[] = 3; $tab1[] = 2; $tab2[] = "Pierwszy"; $tab2[] = "Drugi"; $tab2[] = "Trzeci"; $tab2[] = "Czwarty"; echo $tab2[$tab1[2]]; ?>
40
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): <?php $tablica["imie"] = "Jan"; $tablica["nazwisko"] = "Kowalski"; $tablica["adres"] = "Polna 1"; echo $tablica["imie"]." ".$tablica["nazwisko"].", ul. ".$tablica["adres"]."n"; ?>
41
Tablice w PHP //przypisanie elementów tworząc tablice asocjacyjne
$jezyki[„hiszpania”]=„hiszpański” $jezyki[„turcja”]=„turecki” //lub za pomocą funkcji array() $jezyki=array(„hiszpania”=>”hiszpański”, „usa”=>”angielski”, „niemcy”=>”niemiecki”);
42
Przeglądanie tablic Bardzo często zachodzi potrzeba wykonania jakiejś operacji na wszystkich elementach tablicy. Sprawa jest prosta jeśli tablica jest zwykłą tablicą z indeksami liczbowymi i znamy ilość tych elementów: <?php $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]; } ?>
43
Przeglądanie tablic Sprawa się trochę komplikuje jeśli nie znamy ilości elementów tablicy. Wtedy możemy użyć funkcji: count( $nazwa_tablicy ). Zwraca ona ilość elementów w tablicy podanej jako parametr.
44
Przeglądanie tablic <?php ?> $tbl[] = 1; $tbl[] = 2; $tbl[] = 3;
$tbl[] = 1; $tbl[] = 2; $tbl[] = 3; $tbl[] = 4; $tbl[] = 5; for( $x = 0, $cnt = count($tbl); $x < $cnt; $x++ ) { echo $tbl[$x]; } ?>
45
Przeglądanie tablic asocjacyjnych
W tym przypadku należy skorzystać z funkcji list() i each(). <?php $tablica["imie"] = "Jan"; $tablica["nazwisko"] = "Kowalski"; $tablica["adres"] = "Polna 1"; while( list($klucz, $wartosc) = each($tablica) ) echo "$klucz => $wartosc<BR>"; ?>
46
Formularze – tworzenie zmiennych.
Jeśli użytkownik musi podać jakieś dane (np. w celu dodania ich do bazy danych), to jedyną metodą jest pobranie ich ze standardowego formularza HTML. W większości języków programowania należy używać dodatkowych bibliotek aby uzyskać dostęp do danych przesyłanych z formularza. W PHP zostało to maksymalnie uproszczone. 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.
47
Metody przekazywania parametrów do innych stron
metoda “GET” metoda “POST”. Metody GET używa się kiedy parametrów jest niewiele. Dzieje się tak ponieważ parametry przekazuje się za pomocą adresu URL (np. Ograniczona długość. Parametry są widoczne w pasku adresu przeglądarki, więc tej metody nie należy używać jeśli przekazywane są np. hasła. Adres od parametrów oddzielany jest za pomocą znaku zapytania, a kolejne pary parametr=wartość za pomocą znaku ampersand (”&”).
48
Metoda “POST” Do przekazywania parametrów wykorzystuje nagłówek zapytania Wystarczy wiedzieć, że metoda ta umożliwia przekazywanie dużo więcej parametrów, a także że parametrów nie widać w pasku przeglądarki.
49
Zapisywanie zmiennych
Zależnie od metody, zmienne trafiają do odpowiednich tablic asocjacyjnych. Dane przesłane metodą GET trafiają do tablicy $_GET (lub $HTTP_GET_VARS w wersjach starszych niż 4.1.0) Dane z metody POST to tablicy $_POST (lub $HTTP_POST_VARS). Tablice $_GET i $_POST są superglobalne. Oznacza to, że są widoczne w każdym miejscu kodu PHP bez konieczności użycia składni globals.
50
Odczytywanie wartości z formularza
<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/> </html> 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>
51
Odczytywanie wartości z formularza
<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"; case "sprite": echo "Sprite"; } ?> </body> </html>
52
Funkcje Dużo predefiniowanych funkcji PHP można znaleźć na stronie internetowej echo print Funkcje, które nie zwracają wyniku nazywa się procedurami, podobnie jak w Turbo Pascalu.
53
Funkcja Jest kawałkiem kodu, który można wywołać podając jej nazwę.
Już wcześniej podane zostało kilka funkcji dostarczanych przez PHP, takich jak array(), each(), list(), Funkcje rozpoznaje się po nawiasach występujących po ich nazwie. W nawiasach tych (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.
54
Definicja Funkcji <?php ?>
function suma($parametr1 = 0, $parametr2 = 0) { $wartosc = $parametr1 + $parametr2; return $wartosc; } ?>
55
Funkcje – c.d. Definiowana funkcja o nazwie suma służy do obliczania sumy dwóch wyrażeń podawanych jako parametry (kolejne parametry oddziela się przecinkiem). W przypadku pominięcia któregoś z parametrów przypisana mu będzie wartość 0 - dzieje się tak dzięki zaznaczeniu ” = 0″ po określeniu nazwy parametru w definicji funkcji (nie jest to konieczne). Z parametrów funkcji można korzystać jak z dowolnej innej zmiennej, ale oczywiście tylko wewnątrz tej funkcji. Wewnątrz funkcji dostępne są tylko zmienne w niej definiowane i parametry. Do określania co jest zwracane przez funkcję służy instrukcja return. Może ona być wywołana w dowolnym miejscu funkcji - po dojściu do tej instrukcji kończy się wykonanie funkcji.
56
Funkcje – c.d. Funkcja może nie zwracać żadnych wartości. Taka funkcja przydaje się jeśli często powtarzany jest jakiś fragment kodu. Taka funkcja kończy swoje wykonanie po dojściu do końca jej definicji lub instrukcji return (tym razem wywoływanej bez parametru, ponieważ funkcja nie zwraca żadnych wartości).
57
Funkcje – c.d. Funkcje w PHP nie mogą być ponownie definiowane.
Mogą być definiowane w zasadzie w dowolnym miejscu kodu. Wewnątrz funkcji znajdować się może dowolny, prawidłowy pod względem składniowym kod - nawet definicje innych funkcji.
58
Zasięg zmiennych
59
Zmienne w funkcjach Kiedy zmienna jest zadeklarowana poza funkcją, jej wartość nie będzie widoczna w funkcji. Ilustruje to przykład: $c=5; Function f() { echo($c); } f();
60
Zmienne globalne Żeby zmienna globalna (w tym wypadku $c) była widoczna wewnątrz funkcji, należy użyć polecenia global: $c=5; Function f() { global $c; echo($c); } f();
61
Przekazywanie parametrów do i z funkcji
//dodać 5 do zmiennej przekazanej function dodaj5 ($przekazana) { $przekazana+=5; return $przekazana; } //do zmiennej przekazanej w wywołaniu zostanie dodane 5 i zwrócone jako rezultat działania funkcji
62
Zmienna wewnątrz funkcji
Jeżeli stworzy się zmienną wewnątrz funkcji, to jej wartość będzie za każdym wywołaniem ustawiana od początku: Function f() { $b=2; echo($b); $b++; } f(); f(); Wykonanie tego kodu spowoduje pojawienie się dwa razy tego samego.
63
Po zakończeniu funkcji zmienna static nie traci wartości
Jeżeli chce się, żeby zmienna nie traciła wartości po zakończeniu funkcji, to należy użyć polecenia static: Function f() { static $d=2; echo($d); $d++; } f(); f(); Teraz pojawi się najpierw liczba 2, potem 3.
64
Definiowanie stałych <? Define(„stala_pi”,”3.14”); jakiego typu?
//odwołanie do stałej echo stala_pi.„<br><hr>”; ?>
65
Zwracanie wartości funkcji
<? $cena_netto=100; $VAT=22; //funkcja obliczająca cenę brutto z VATem function oblicz_brutto($cena_netto,$VAT) { $cena_netto=$cena_netto+$cena_netto*$VAT/100; return $cena_netto; } //wywołanie funkcji $do_zaplacenia=oblicz_brutto($cena_netto,$VAT); //zaokrąglenie wyniku do 2 miejsc po przecinku $do_zaplacenia=round($do_zaplacenia,2); echo „do zapłacenia=„.$do_zaplacenia.”<BR><HR>”; ?>
66
Funkcja może zwracać wiele wartości w postaci tablicy
$wino=„bordeaux” function najlepsze_roczniki($wino) { $california=array(1989,1992,1994); $bordeaux=array(1992,1997,1998); return $$wino //zwraca zmienną zmiennej $$ } //do wyświetlania listy użyto list() list($pierw,$drugi,$trzeci)=najlepsze_roczniki($wino); echo „najlepsze roczniki wina $wino to: $pierw,$drugi,$trzeci”;
67
Funkcje rekurencyjne Jest to wielokrotne wywołanie funkcji przez samą siebie w przypadku spełnienia warunku. Szczególnie przydatne w przypadku np. renderowania grafiki lub pracy z fraktalami.
68
Funkcje rekurencyjne //iloczyn liczb całkowitych - funkcja wywołuje samą siebie function iloczyn($zmienna) { if($zmienna!=0) {return $zmienna*iloczyn($zmienna-1);} } //wywołanie $zmienna2=iloczyn(4)
69
Funkcje zmienne Funkcja zmienna to inaczej dynamiczne wywołanie funkcji w zależności od wartości zmiennej. PHP obsługuje koncepcję zmiennych funkcji. Oznacza to, że jeśli po nazwie zmiennej występują nawiasy, PHP będzie szukało funkcji o nazwie będącej wartością zmiennej i będzie próbowało wywołać ją.
70
Funkcje zmienne - przykład
//komunikat po polsku function polski() {echo ”Witaj przyjacielu na mojej stronie”;} function angielski() {echo „Welcome my friend to my Web page”; } //wybieramy język $jezyk=„polski”; //wywołujemy funkcję $jezyk();
71
Funkcje używane w czasie operacji z tablicami
list() - do pobierania wartości z tablicy wielu zmiennych. Działa podobnie jak array() range() - pozwala na wypełnienie tablicy wartościami o podanym zakresie np. $tablica1=range(2,6); //odpowiada $tablica1=array(2,3,4,5,6); $szachownica[0][1]=„pionek”
72
Funkcje używane w czasie operacji z tablicami 2
in_array() - umożliwia sprawdzenie, czy w tablicy istnieje dany element. np.: $jezyki = array („angielski”,”polski”,”niemiecki”); $czy_jest=in_array(„polski”,$jezyki); //zwróci $true(prawda) //przykład użycia z instrukcją warunkową if if(in_array(„polski”,$jezyki)) {zrob_cos_1_procedura(); zrob_cos_2_procedura(); }; //jeśli true to np. przekieruje do strony po polsku
73
Funkcje używane w czasie operacji z tablicami 3
Tablice w PHP mogą być poszerzane, lub zmniejszane dynamicznie. Podobnie jak w kolejce w PHP można pobierać pierwszy element lub dodawać na początek kolejki Podobnie jak na stosie można dodawać elementy tablicy lub je zdejmować. Jest to tak, jak z zabawką w nakładanie drewnianych krążków na patyk od największego do najmniejszego. Aby je zdjąć trzeba zacząć od ostatnio nałożonego.
74
Funkcje używane w czasie operacji z tablicami 4
array_push() - służy do dodawania na końcu tablicy elementu array_pop() – służy do zdejmowania z tablicy jednego elementu, który podstawiany jest za dowolną zmienną.
75
Funkcje używane w czasie operacji z tablicami 5
Funkcja array_shift() Jest ona podobna do array_pop(), tylko że usuwa elementy z początku tablicy i zwraca jako zmienną array_unshift() dodaje element do początku tablicy (jako pierwszy wyraz)
76
Funkcje używane w czasie operacji z tablicami 6
array_pad(nazwa_tablicy, nowy_rozmiar, wartosc_jakom_wypelnimy_tablice) nowy_rozmiar określa nam nowy rozmiar tablicy po przedłużeniu. Jeżeli tablica miała 4 elementy, a teraz za tą wartość wstawimy 10, to nowa tablica będzie miała 10 elementów, a wartości elementów dodatkowych będą te same, takie jak trzeci parametr. Jeżeli drugi parametr będzie ujemny, to nowe wartości zostaną dodane do początku tablicy.
77
Funkcje używane w czasie operacji z tablicami 7 - przykład
<?php $wejscie = array(12, 10, 9); $wynik = array_pad($wejscie, 5, 0); // wynik to array(12, 10, 9, 0, 0) $wynik = array_pad($wejscie, -7, -1); // wynik to array(-1, -1, -1, -1, 12, 10, 9) $wynik = array_pad($wejscie, 2, "noop"); // nie ma dopełniania ?>
78
Funkcje używane w czasie operacji z tablicami 8
Do przechodzenia między elementami tablicy służą: funkcja reset() przenosi wskaźnik do pierwszego elementu i zwraca element $zmienna=reset($tablica); może też być wywołana bez podstawienia reset($tablica);
79
Funkcje używane w czasie operacji z tablicami 9
Funkcja end($tablica) przenosi wskaźnik do ostatniego elementu tablicy. Funkcja next($tablica) przesuwa wskaźnik o 1 (zwieksza wskaźnik o 1). Jeżeli będziemy na końcu tablicy zwróci wartość logiczną false funkcja prev($tablica) przesuwa wskaźnik o jedną pozycję w lewo i zwróci wartość false, kiedy będziemy na początku tablicy
80
Funkcje używane w czasie operacji z tablicami 10
Funkcja array_walk($tablica,”funkcja”) powoduje wykonanie operacji na tablicy $tablica zdefiniowanych w „funkcji”
81
Funkcje używane w czasie operacji z tablicami 11
Funkcja array_reverse($tablica) - odwraca dokładnie na odwrót kolejność elementów tablicy. Funkcja array_flip($tablica) zamienia klucze na elementy tablicy, a elementy na klucze. To znaczy, jeżeli tablica była indeksowana liczbami , a miała wartości typu string np. „masło”, „chleb”... To te liczby indeksów będą elementami tablicy, a indeksami będą wartości typu string i przez ich podanie będziemy odwoływać się do poszczególnych elementów tablicy.
82
Funkcje używane w czasie operacji z tablicami 12
sizeof($tablica) - funkcja zwraca wielkość tablicy count($tablica) - również zwraca liczbę elementów tablicy.
83
Funkcje używane w czasie operacji z tablicami 13
Do sortowania tablic używamy kilku funkcji sort($tablica) sortuje wszystkie elementy od najniższego do najwyższego. Wartości typu string od A do Z. Funkcja rsort($tablica) sortuje wszystkie elementy na odwrót do sort()
84
Funkcje używane w czasie operacji z tablicami 14
Jeżeli tablica indeksowana jest kluczami w postaci string, a nie liczbami, to sortowanie odbywa się według kluczy tablicy od A do Z tzn ksort($tablica) spowoduje wysunięcie naprzód elementu $tablica[„AAAA”] przed element $tablica[„BBBB”]
85
Funkcje używane w czasie operacji z tablicami 15
Funkcja krsort($tablica) sortuje tablicę według indeksów-klucza, ale w odwrotnej kolejności. Funkcja usort($tablica,funkcja) sortuje tablicę według własnych kryteriów zadanych przez funkcję, w której określono mechanizm sortowania.
86
Funkcje używane w czasie operacji z tablicami 16
Funkcja array_merge($tablica1,$tablica2,....,$tablicaN) łączy ze sobą tablice od 1 do N) Funkcja array_slice($tablica,ktory,dlugosc) wycina z tablicy fragment odpowiadający liczbie elementów, określonej parametrem dlugosc od elementu ktory. Jeżeli ktory jest dodatni to liczymy pierwszy do wycięcia od początku, a jeżeli ktory jest ujemny to od konca Funkcja wytnie tyle elementów, ile wskazuje zmienna (liczba) dlugosc. Wszystkie tnie na prawo.
87
Funkcje używane w czasie operacji z tablicami 17
Funkcja array_splice() działa podobnie do array_slice, tylko że zastępuje dodatkowo wycięte elementy elementami z innej tablicy. Funkcja shuffle() sortuje elementy tablicy w przypadkowej kolejności (indeksy ustawia random)
88
Operacje wejścia-wyjścia i system plików.
Operacje na plikach są szczególnie ważne w PHP. Umożliwiają one wprowadzanie i wyprowadzanie danych. Można także wywoływać programy zewnętrzne, a nawet modyfikować informacje o serwerze. Jeżeli korzystamy z serwera baz danych MySQL niekoniecznie musimy używać funkcji wejścia-wyjścia.
89
Operacje wejścia-wyjścia i system plików 2
Funkcja file_exist($plik) zwraca true jeżeli plik o nazwie $plik istnieje Funkcja is_file($plik) zwraca prawdę, ale tylko gdy plik istnieje i można z niego odczytywać oraz zapisywać do niego informacje (gdy plik jest -rw). Funkcja filesize($plik) zwraca wielkość pliku w bajtach lub fałsz gdy taki plik nie istnieje.
90
Operacje wejścia-wyjścia i system plików 3
Otwieranie i zamykanie plików - funkcja fopen($plik,$tryb) $tryb=r, w, w+ (utworzenie nowego pliku), A (append), a+ (odczyt i append) fclose($zm_plikowa)
91
Operacje z plikami 4 <? $file=„dane.txt”; if(file_exists($file)):
$zm_plikowa=fopen($file,”w+”); //operacje na pliku fclose($zm_plikowa); else: print „nie ma pliku $file”; endif; ?>
92
Zapisywanie danych do pliku
Funkcja is_writeable(string plik) sprawdza możliwość zapisywania danych do pliku i do katalogu funkcja fwrite() zapisuje dane do pliku składnia fwrite($zm_plikowa,$dane); zamiennie można używać fputs() - alias
93
Przykład zapisania danych do pliku
<? $dane="234,123,789,988,12,88"; $zm_plikowa="dane.txt"; if(is_writeable($zm_plikowa)) { $pl_otw=fopen($zm_plikowa, "w+"); $zapisane=fwrite($pl_otw,$dane); $fclose($pl_otw); } else print "nie da się otworzyć pliku do zapisu"; ?>
94
Odczytywanie danych z pliku
Funkcja is_readable() analogicznie sprawdza, czy możliwe jest otwarcie danego pliku do odczytu funkcja fread($zm_plikowa,$dl_ciagu_znakow) służy do odczytywania ciągu znaków. Pobierany jest ciąg o określonej długości.
95
Przykład odczytywania danych z pliku
<? $zm_plikowa=fopen('dane.txt',"r") or die("Nie ma pliku"); $dane_z_pliku=fread($zm_plikowa,filesize($zm_plikowa); //czyta cały plik print $dane_z_pliku; fclose($zm_plikowa); ?>
96
Odczytywanie danych z pliku 2
Do odczytywania pojedyńczych znaków służy funkcja fgetc($zm_plikowa) do odczytywania ciągów znakowych podobnie jak fread() jest funkcja fgets($zm_plikowa,234), gdzie 234 to liczba bądź zmienna, określająca długość wczytywanego ciągu znaków
97
Odczytywanie danych z pliku 3
Podobna do fgets() jest funkcja fgetss($zm_plikowa,234), gdzie 234 to liczba bądź zmienna, określająca długość wczytywanego ciągu znaków Jest jednak bardziej użyteczną funkcją do odczytywania informacji ze stron HTML i programów PHP, ponieważ podczas wczytywania plików usuwa wszystkie znaczniki.
98
Fgetc() przykład <? $zm_plikowa=fopen('dane.txt',"r") or die("Nie ma pliku"); while(!feof($zm_plikowa)) { $znak=fgetc($zm_plikowa); //czyta 1 znak print $znak; } fclose($zm_plikowa); ?>
99
Funkcja file() Funkcja file służy do pobierania z pliku łańcuchów tekstowych linia po linii. Wywołanie $tablica=file('dane.txt'); powoduje wczytanie do tablicy $tablica poszczególnych linii z pliku dane.txt, tak że pierwsza linia to $tablica[0], druga linia $tablica[1], trzecia $tablica[2].....itd.
100
Uruchamianie programów na serwerze
Czasami jest potrzeba zdalnego uruchomienia programu, który znajduje się na serwerze. Jest to szczególnie przydatne przy zarządzaniu systemem przez sieć, zdalnym zamykaniu systemu. Komunikaty wykonującego się programu idące do okna systemowego wgrywane są do tablicy wierszami
101
Przykład wywoływania programów i poleceń systemowych
Polecenie umieszczamy w odwróconych apostrofach (klawisz odwróconego apostrofu jest z lewej obok klawisza 1) przykład: $output=`dir` print $output. "<BR>"
102
Pliki na serwerze PHP oferuje funkcje do modyfikowania i przeglądania plików na serwerze. Możemy uzyskać takie informacje, jak: lokalizacja, właściciel, prawa dostępu, wielkość pliku itp.
103
basename() Funkcja basename dostarcza informacji o nazwie pliku o podanej ścieżce Przykład: $plik=basename("c:\FoxServ\www\index.php); //spowoduje to podstawienie index.php za $plik
104
stat() Podaje różne informacje o pliku ładując je do tablicy indeksowanej od 0 do 12. Przykład: $tab=stat($plik); $tab[7] podaje informacje o długości pliku w bajtach.
105
chmod() chmod($file,$dostep) zmienia tryb pliku
$file – zmienna określająca plik, $dostep - to zmienna typu int ale musi być podana ósemkowo np – określa rodzaj dostępu do pliku – tylko właściciel ma prawo do odczytu i zapisu
106
fileperms() fileperms($plik);
zwraca prawa dostępu do pliku określonego w zmiennej $plik, lub fałsz w razie wystąpienia błędu
107
chown() Nazwa pochodzi od skrótu change owner. chown($plik,$user);
$user oznacza nowego użytkownika. Tylko uprzywilejowany użytkownik może zmienić właściciela pliku.
108
fileowner() Funkcja ta zwraca ID użytkownika, który jest właścicielem pliku. Przykład: $id=fileowner($plik)
109
Kopiowanie i zmiana nazw plików
copy($plik1,$plik2) kopiuje plik źródłowy plik1 do pliku docelowego plik2 $plikx są typu string rename($plik1,$plik2) zmienia nazwę z $plik1 na $plik2
110
Usuwanie plików W innych niż Windows systemach powinna działać funkcja
unlink($plik); W Windows lepiej zastosować wywołanie polecenia systemowego: system("del nazwa_pliku.txt");
111
Praca z folderami is_dir($katalog)
sprawdza, czy istnieje katalog o nazwie podanej w zmiennej $katalog. mkdir($sciezka,$uprawnienia); zakłada katalog określony w zmiennej $sciezka $uprawnienia są typu int
112
Praca z folderami 2 readdir($katalog);
zwraca wszystkie elementy katalogu w postaci string $katalog=opendir($sciezka); potem closedir($katalog);
113
PHP a bazy danych <?php $hostname_localhost = "localhost";
$database_localhost = „aaaaaaa"; $username_localhost = „username"; $password_localhost = „**********"; $polaczenie = mysql_pconnect($hostname_localhost, $username_localhost, $password_localhost) or die(mysql_error()); ?>
114
PHP a baza danych <?php require_once('Connections/localhost_conection.php'); ?> mysql_select_db($database_localhost, $localhost); $query_Pracownicy_sz = "SELECT * FROM pracownicy WHERE ID = '$id_n' "; $Pracownicy_sz = mysql_query($query_Pracownicy_sz, $localhost_kf1) or die(mysql_error()); $row_Pracownicy_sz = mysql_fetch_assoc($Pracownicy_sz); $totalRows_Pracownicy_sz = mysql_num_rows($Pracownicy_sz); ?>
115
PHP a bazy danych <?php echo $row_Pracownicy_sz['Stopien']; ?>
$mail= "mailto:".$row_Pracownicy_sz['e_mail']; echo "<a href=\"".$mail."\">"."wyślij wiadomość"."</a>"; ?>
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.