php - BK-S

Transkrypt

php - BK-S
Dynamiczne przetwarzanie stron
dr Beata Kuźmińska-Sołśnia
KLIENT
<html>
<body>
<p> Witaj</p>
…
wyświetlanie
przez
przeglądarkę
Witaj!
SERWER
Plik HTML
INTERNET
<html>
<body>
<p> Witaj</p>
…
 Serwer
WWW – komputer przechowujący dokumenty HTML
oraz towarzyszące im pliki (np. grafikę) i udostępniający je
użytkownikom przez Internet
 Skrypty
– najczęściej generują kod HTML, lecz w
rzeczywistości mogą generować dowolny typ danych – od
plików tekstowych po pliki graficzne czy dokumenty PDF
 Skrypty
– interpretowane programy wykonywane na
serwerze w chwili, gdy klient zażąda pobrania strony WWW
 Serwis
WWW – zbiór powiązanych ze sobą stron WWW
KLIENT
<html>
<body>
<p> Dzisiaj jest
21-04-2012</p>
…
SERWER
Wynik działania skryptu
INTERNET
<html>
<body>
<p>Dzisiaj jest
21-04-2012</p>
…
przetwarzanie skryptu
wyświetlanie przez
przeglądarkę
Dzisiaj jest
21-04-2012
Plik skryptu PHP
<html> <body>
<?php
echo(‘<p>Dzisiaj jest’);
echo(date(‘d-m-Y’));
echo(‘</p’);
?>
…
Kod w języku PHP umieszcza się w kodzie dokumentu
HTML – oddziela się go specjalnymi znacznikami
<?php oraz ?>
 Funkcja echo dołącza do wynikowego kodu HTML łańcuch
<html>
(ciąg znaków) podany jako parametr

<html>
<head>
<title>Skrypt wyświetlający bieżącą datę </title>
</head>
<body>
<?php
echo(‘Dzisiaj jest <b>’.date(‘d-m-Y’). ‘</b>’);
?>
</body>
</html>
<head>
<title>Skrypt wyświetlający bieżącą
datę </title>
</head>
<body>
Dzisiaj jest <b> 20-04-2012</b>
</body>
</html>
 Aby
mieścić skrypt na serwerze należy skopiować
plik skrypt do odpowiedniego katalogu,
udostępnionego przez serwer WWW jako publiczny
 Aby
wykonać skrypt należy otworzyć go
w przeglądarce WWW podając adres pod jakim jest
on dostępny
np. http://localhost/katalog/skrypt.php
 Komentarze
jednoliniowe
rozpoczynają się od znaków //
i kończą wraz z przejściem do
nowej linii
 # po znaku „hash” wszystko do
końca wiersza jest komentarzem
 W przypadku umieszczania
dłuższych opisów używa się
symboli „/*” i „*/”
<html>
<head>
<title> Stosowanie komentarzy </title>
</head>
<body>
<?php
/* Oto skrypt pokazujący, jak stosować
komentarze. Interpreter ignoruje wszystko, co
jest tutaj umieszczone:
echo(‘Ten tekst nie zostanie wypisany’);
*/
// wypisanie daty
echo(‘Dzisiejsza data: ‘.date(‘d-m-Y’));
echo(‘<br>’); // przejście do nowego wiersza
// wypisanie godziny
echo(‘Aktualna godzina: ‘.date(‘H:i:s’));
?>
</body>
</html>

Aby w PHP utworzyć zmienną – przypisujemy jej wartość

Zmienne oznacza się umieszczając znak $ przed ich nazwą

Nie ma potrzeby deklarowania typu zmiennych

Operatorem przypisania jest znak „=„ nie jak w Pacalu „:=„
 Ważne zasady:



Rozróżniane są wielkie i małe litery $kwadrat, $Kwadrat, $KWADRAT (trzy
różne zmienne)
W nazwach dopuszcza się stosowanie liter alfabetu łacińskiego, cyfr
i podkreśleń;
Nie można rozpoczynać identyfikatora cyfrą, nie można używać znaków
specjalnych (?, - (), . , itp.)
Poprawne nazwy: $_kreska, $agent007, $pod_kreslenie
Nieoprawne nazwy: $kółeczko, $-myślnik, $12, $7x
<html>
<head>
<title> Wykorzystanie zmiennych</title>
</head>
<body>
<?php
$nl = "<br>\n";
$dzialanie = '(24 + 1) / 5 =';
$wynik = (24 + 1) / 5;
echo('Proste działanie:'.$nl.$dzialanie.$wynik);
?>
</body>
</html>
 Podstawowe
operacje arytmetyczne
Operatory: „+” „-” „*” „/”
„%” - odpowiednik MOD
oraz
<html>
<head><title>Stosowanie funkcji matematycznych</title></head>
<body>
<?php
//pierwiastek kwadratowy - funkcja sqrt(liczba)
echo('sqrt(64) = '.sqrt(64).'<br>');
//potęgowanie - funkcja pow(podstawa, wykładnik)
echo('pow(1.5,2) = '.pow(1.5,2).'<br>');
//zaokrąglenie - funkcja round(liczba, dokładność)
echo('round(14/5,0) = '.round(14/5,0).'<br>');
echo('round(sqrt(2),2) = '.round(sqrt(2),2).'<br>');
?>
</body>
</html>
 Losowanie liczb
 Do
losowania liczb z zdanego przedziału służy funkcja
rand(min, max)
<html>
<head>
<title>Rzut kostką</title>
</head>
<body>
<?php
// inicjalizacja generatora liczb losowych
srand ((double) microtime() * 1000000);
$kostka = rand(1,6);
echo("Liczba oczek: $kostka");
?>
</body>
</html>
Konkatenacja
łańcuchów
 W PHP do łączenia łańcuchów nie
można stosować operatora „+”
 Aby otrzymać efekt połączenia
łańcuchów, należ użyć operatora
„.” (kropka)

<html>
<head>
<title>Operatory dodawania liczb i konkatenacji
łańcuchów znakowych</title>
</head>
<body>
<?php
// operator dodawania
$liczba = '14' + '10';
echo("$liczba <br>");
// operator konkatenacji (łączenia łańcuchów)
$napis = '14' . '10';
echo("$napis <br>");
// skrócone zapisy
$liczba += 15; // równoważne $liczba = $liczba + 15;
echo("$liczba <br>");
$napis .= ' rok'; // równoważne $napis = $napis . ' rok';
echo("$napis <br>");
?>
</body>
</html>
 Warunki proste



i zagnieżdżone
Warunek dla instrukcji if umieszczamy
w nawiasach okrągłych.
Nawiasy klamrowe ograniczają bloki
instrukcji – pełnią tą samą funkcję jak
begin i end w TP
Do porównywania wartości używamy
podwójnego znaku równości „==„
<html>
<head>
<title>Rzut monetą</title>
</head>
<body>
<?php
// inicjalizacja generatora liczb losowych
srand ((double) microtime() * 1000000);
$wypadlo = rand(1,2);
// sprawdzenie wyniku
// przyjmujemy umownie: 1-orzeł, 2-reszka
if($wypadlo == 1) {
echo('Wypadł orzeł');
} else {
echo('Wypadła reszka');
}
?>
</body>
</html>
 Warunki proste

i zagnieżdżone
Oprócz operatora sprawdzającego równość
argumentów dostępne są operatory:
!=(różny) ! operator zaprzeczenia (negacji)
>(większy), >=(większy lub równy)
<(mniejszy), <=(mniejszy lub równy)
++ operator zwiększenia o 1 (inkrementacja)
-- operator zmniejszenia o 1 (dekrementacja)
*= operator przypisania – przypisuje do wyniku iloczyn
wyniku i argumentu
+= przypisuje do wyniku sumę wyniku i argumentu
-= przypisuje do wyniku różnicę wyniku i argumentu
.= przypisuje do wyniku (będącego łańcuchem) jego
połączenie z łańcuchem ( będącym argumentem)

Do budowana
warunków
złożonych
operatory logiczne
„&&” (i) oraz „II” (lub)
<html>
<head>
<title>Rzut dwiema monetami</title>
</head>
<body>
<?php
// inicjalizacja generatora liczb losowych
srand ((double) microtime() * 1000000);
$moneta1 = rand(1,2);
$moneta2 = rand(1,2);
if($moneta1==1 && $moneta2==1) {
echo('Wypadły dwa orły.');
} elseif($moneta1==2 && $moneta2==2) {
echo('Wypadły dwie reszki.');
} else {
echo('Wypadł 1 orzeł i 1 reszka.');
}
?>
</body>
</html>
if (warunek1) {
blok instrukcji 1
} elseif (warunek2) {
blok instrukcji 2
} elseif (warunek3) {
blok instrukcji 3
…
} else {
blok instrukcji n
}
forma uproszczona
if (warunek1) {
blok instrukcji 1
}
W
PHP istnieją instrukcje sterujące,
umożliwiające powtarzanie poleceń
 Pętle for i while działają podobnie jak
instrukcje w Pascalu
pętla
for
przykład
opis
<?php
// 10 rzutów sześcienną kostką
srand((double)microtime()*1000000);
for($i=1;$i<=10;$i++) {
$wypadlo = rand(1,6);
echo("Rzut nr $i:<br>\n");
echo("<b>$wypadlo</b><br>\n");
}
?>
Pętlę tę stosuje
się, gdy
określone
instrukcje trzeba
wykonać z góry
określoną liczbę
razy, np.
powtórzyć 10
razy rzut kostką,
odczytać 15
wierszy z pliku,
obliczyć sumę 0
kolejnych liczb
for (ustalenie_początku; warunek_pętli; zwiększenie_licznika) {
blok instrukcji
}
•
•
•
W sekcji pierwszej (ustalenie początku) nadajemy
zmiennej sterującej w pętli wartość początkową
Druga sekcja (warunek pętli) to wyrażenie określające
warunek, przy którego spełnieniu pętla ma być
wykonana
W trzeciej sekcji (zwiększenie licznika) określamy
sposób zwiększenia zmiennej sterującej przy każdym
przebiegu pętli
 Pętla
while
while (warunek) {
blok instrukcji
}
 Pętla
Dopóki jest spełniony
warunek wykonuj
instrukcje
do…while
do
{ blok instrukcji }
while (warunek)
Wykonuj instrukcje,
dopóki jest spełniony
warunek
pętla
while
przykład
opis
<?php
// wypisywanie silni z kolejnych
// liczb naturalnych dopóki nie
// przekracza ona podanego
maksimum
$max = 1000;
$silnia = 1;
$n = 1;
while($silnia<$max) {
echo("$n! = $silnia<br>\n");
$n++;
$silnia = $silnia * $n;
}
echo("Przekroczono liczbę
max!");
?>
Pętla ta jest
użyteczna jeśli
chcemy
wykonywać
określone
polecenia, dopóki
jest spełniony
warunek.
Najczęściej nie
wiemy z góry, ile
będzie powtórzeń
– tak jak w
przykładzie ze
sprawdzaniem
wartości silni.
If ($zmienna == wartosc1) {
dzialanie1;
} elseif($zmienna == wartosc2) {
dzialanie2;
} else {
dzialanie3;
}
tzw. wyrażenia wyboru
switch (wyrazenie) {
case wartosc1:
dzialanie1;
break;
case wartosc2:
dzialanie2;
break
…
default dzialanie;
}






W PHP, inaczej niż w większości pozostałych języków programowania,
wartość umieszczane w tablicy nie muszą być tego samego typu
Nie ma też konieczności deklarowani z góry liczby elementów tablicy
Najprostszym sposobem utworzenia tablicy jest skorzystanie z funkcji
array, pozwalającej na inicjalizację tablicy elementami przekazanymi
jako parametry - będą one miały przypisane kolejne indeksy,
poczynając od 0 (w PHP indeksy tablic są zawsze liczone od 0)
Typ tablicowy grupuje wiele elementów, są one ponumerowane,
a numer nazywa się indeksem
Poprzez indeks odwołujemy się do elementu tablicy
Odwołanie do elementu tablicy ma postać
$nazwatablicy [$numerelementu];





Tworzymy tablicę zawierającą trzy
elementy: „zeszyt”, „linijka”, „kredka” o
przypisanych domyślnych indeksach 0,1 i 2
Wypisujemy pierwszy element.
Następnie zmieniamy wartość pierwszego
elementu na „gruby zeszyt”.
Dodajemy na koniec tablicy dwa elementy:
„gumka” i „klej” (zostaną im nadane dwa
kolejne wolne indeksy).
Na koniec wpisujemy zawartość tablicy przy
użyciu wbudowanej w PHP funkcji print_r
<?php
echo('<pre>');
// wykorzystanie funkcji array()
// do utworzenia tablicy zawierającej 3 elementy
$tablica = array("zeszyt", "linijka", "kredka");
// odwoływanie się do elementów tablicy
echo('Pierwszy element tablicy (przed podmianą): ');
echo($tablica[0]."\n");
$tablica[0] = "gruby zeszyt";
// dodawanie elementów
$tablica[] = "gumka";
$tablica[] = "klej";
// funkcja print_r wypisuje zawartość podanej
// jako parametr tablicy
print_r($tablica);
echo('</pre>');
?>
Jako indeksy w tablicach
można stosować ciągi
znaków
 Trzeba pamiętać, że
rozróżniana jest wielkość
liter – warto stosować
małe litery do nazywania
elementów

<?php
$typy_jezykow['php'] = 'interpretowany';
$typy_jezykow['c'] = 'kompilowany';
$typy_jezykow['pascal'] = 'kompilowany';
$typy_jezykow['basic'] = 'interpretowany';
// błędny indeks ('PHP' i 'php' to dwa różne indeksy!);
// w zależności od konfiguracji PHP instrukcja
// echo nie wypisze nic, bądź pojawi się
// komunikat błędu "undefined index"
echo($typy_jezykow['PHP']);
?>
echo($typy_jezykow['php']."<br>");
print_r($typy_jezykow);
Instrukcja foreach pozwala wykonać określony fragment kodu
dla każdego elementu tablicy
 Nie trzeba znać liczby elementów tablicy, nie ma znaczenia jakie
mają indeksy

<?php
$wyniki = array(6, 2, 4, 1, 3, 6, 5, 2, 1, 4);
$i = 0;
foreach($wyniki as $w) {
$i++;
echo("Rzut nr $i: $w<br>\n");
}
?>








Omówiliśmy dwa rodzaje stron:
 statyczne (zawierające tylko HTML)
 dynamiczne (zawierające oprócz kodu HTML polecenia skryptowe
wykonywane przez serwer w momencie przetwarzania żądania
użytkownika)
Skryty PHP nie są kompilowane – są przetwarzane przez odpowiedni
interpreter
Polecenia PHP umieszcza się między znacznikami <?php i ?>
Aby wykonać skrypt, należy go najpierw umieścić na serwerze
W PHP nie ma potrzeby deklarowania zmiennych. W celu utworzenia
zmiennej przypisuje się jej wartość
W PHP dostępne są podstawowe operatory działań arytmetycznych, zestaw
funkcji matematycznych, oraz funkcja umożliwiająca losowanie liczb
W PHP można stosować instrukcję warunkową i pętle
W celu przechowywania dużej liczby danych w PHP można stosować
tablice. Elementy nie muszą być tego samego typu i nie trzeba z góry
określać rozmiaru tablicy. Utworzenie tablicy to przypisanie wartości jej
elementom
Zapraszam
do ćwiczeń

Podobne dokumenty