Technologie internetowe II

Slides:



Advertisements
Podobne prezentacje
20041 Projektowanie dynamicznych witryn internetowych Paweł Górczyński ASP 3.0.
Advertisements

Przekształcanie dokumentów XML - XSL
Marcin Celiński grudzień 2000
Wprowadzenie do języka skryptowego PHP
Wprowadzenie do języka skryptowego PHP
Wprowadzenie do C++ Zajęcia 2.
FLASH - INTERAKCJA Interaktywne dokumenty WWW.
PHP vs. ASP PHP – lider wydajności wśród języków skryptowych.
Obsługa serwera zdalnego przez klienta FTP
PODSTAWY JĘZYKA PHP 1. czym jest 2. składnia 3. wersje 4. bazy danych
Technologie Internetowe
Tworzenie stron w języku WML jest zbliżone do tworzenia stron w HTML. W obydwu przypadkach używa się do tego celu znaczników (tagów). Zadaniem znaczników.
Systemy zarządzania treścią CMS
PHP wprowadzenie.
Instalacja Apacha Instalacja serwera www ogranicza sie do uruchomienia pliku .exe oraz do wpisania adresu serwera, oraz a administratora czego.
Bazy danych i strony WWW
Język PHP Wprowadzenie.
Forum internetowe, przykład skryptu, Funkcjonalność.
Made by Mateusz Szirch Kilka słów o JavaScript.
A ctive S erver P ages Technologia dostępu do danych.
Programowanie Podstawowe pojęcia.
Przetwarzanie tekstu i strony WWW Copyright, 1999 © Jerzy R. Nawrocki Wprowadzenie.
Wprowadzenie do HTML, CSS, JavaScript, PHP
Podstawy tworzenia stron WWW
Lokalne serwery www Serwer WWW - ang. Web server jest to oprogramowanie zainstalowane na serwerze podłączonym do sieci Internet. Używające technologii.
Tworzenie strony internetowej krok po kroku.
Technologie internetowe II
Technologia informacyjna Magdalena Kowalewska
Autor: Kamil Szafranek
Technologie internetowe II Wykład 2 – Funkcje, Obiekty Dr Krzysztof Heller.
Programowanie obiektowe – zastosowanie języka Java SE
Temat 2: Edytory HTML.
Temat 3: Podstawowa struktura dokumentu
Przekazywanie parametrów do funkcji oraz zmienne globalne i lokalne
Wprowadzenie do HTML Informatyka Cele lekcji: Wiadomości:
Temat 12: Formularze.
Projektowanie stron WWW
Podstawy języka Instrukcje - wprowadzenie
W W W Łukasz Stochniał.
Projektowanie Aplikacji Internetowych
PHP Formularze Damian Urbańczyk. Do czego służą? Formularze to bardzo ważne elementy stron internetowych, dzięki nim dochodzi do wymiany danych pomiędzy.
Temat 2: Instalacja Apache, PHP i bazy danych MySQL.
Temat 1: Ogólne cechy języka PHP
Technologie programowania systemów internetowych
Projektowanie Aplikacji Internetowych Artur Niewiarowski Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska.
Technologie internetowe Wykład 5 Wprowadzenie do skrytpów serwerowych.
Zbiór danych zapisanych zgodnie z określonymi regułami. W węższym znaczeniu obejmuje dane cyfrowe gromadzone zgodnie z zasadami przyjętymi dla danego.
Treści multimedialne - kodowanie, przetwarzanie, prezentacjaOdtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski 1 informatyka +
Temat 1: CSS Dołączanie stylów do dokumentu
Podstawy języka skryptów
Temat 5: Instrukcje: print(), echo()
Technologie internetowe
Programowanie w językach skryptowych
Jak wykonać prosty licznik odwiedzin strony internetowej?
PHP. PHP obiektowy, skryptowy język programowania zaprojektowany do generowania stron internetowych w czasie rzeczywistym.
FrontPage Co i jak ???. FrontPage Tworzenie stron internetowych z wykorzystaniem prostych edytorów tekstu (np. Notatnik) jest dość trudne i bardzo pracochłonne.
Edytory tekstowe stron WWW
Instrukcje warunkowe w php. Pętla FOR Czasem zachodzi potrzeba wykonania jakiejś czynności określoną ilość razy. Z pomocą przychodzi jedna z najczęściej.
Portal edukacyjny J A V A S C R I P T JĘZYK PROGRAMOWANIA STRON HTML Opracowała: Anna Śmigielska.
PHP jest językiem skryptowym służącym do rozszerzania możliwości stron internetowych. Jego składnia jest bardzo podobna do popularnych języków programowania.
Współpraca PHP i MySQL Wygodniejszym i wydajniejszym sposobem przechowywania i korzystania z danych zapisanych na serwerze jest współpraca z relacyjna.
Łączenie php z formularzami. Na początek uruchamiamy Xampp.
Języki i technologie wytwarzania stron WWW Autor: Michał Walkowski Referat.
Czym jest PHP? ● Językiem programowania przeznaczonym do tworzenia i generowania dynamicznych stron WWW. Działa po stronie serwera: Klient Żądanie strony.
Podstawy tworzenia skryptów
Visual Basic w programie Microsoft Excel
Aplikacje i usługi internetowe
Zapis prezentacji:

Technologie internetowe II Wykład 1 Dr Krzysztof Heller

Technologie internetowe II Literatura Meloni J.C.: PHP, MySQL i Apache dla każdego. Wydanie III, Helion, 2007 Lis M.: PHP i MySQL dla każdego, Helion, 2005 Leszek 'leon' Krupiński: Wykłady internetowe, 2007 http://docs.wsei.pl/dydaktyka/Techn_Internet_II_wyklad1.ppt 19-09-2009 Technologie internetowe II

Technologie internetowe II Plan wykładu 1 Podstawowe elementy języka PHP. Typy danych, stałe i zmienne, operatory i wyrażenia. Instrukcje warunkowe i instrukcje pętli. Tablice. 19-09-2009 Technologie internetowe II

Podstawowe elementy języka PHP

Technologie internetowe II Język PHP PHP - język skryptowy służący do rozszerzania możliwości stron internetowych. Składnia bardzo podobna do popularnych języków programowania C/C++, lecz uproszczona. Wbudowana obsługa wielu popularnych baz danych. Dzięki połączeniu z biblioteką GD możliwe jest także dynamiczne tworzenie obrazków GIF (starsze wersje GD) lub PNG (nowsze wersje). 19-09-2009 Technologie internetowe II

Podstawy programowania PHP Aby plik był rozpoznany przez serwer WWW jako skrypt PHP musi on mieć odpowiednie rozszerzenie. Rozszerzenia są definiowalne w konfiguracji serwera WWW, zazwyczaj: .php3 (dla PHP w wersji 3), .php lub php4 (dla PHP w wersji 4), .phtml (dla PHP w wersji starszej niż 3). 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. 19-09-2009 Technologie internetowe II

Podstawy programowania PHP Jeśli zwykłemu plikowi HTML nadamy rozszerzenie .php, to zostanie on prawidłowo wyświetlony Parser PHP przetwarzając stronę ma 2 tryby pracy: HTML, gdzie cała treść jest wyświetlana, bez przetwarzania, PHP, gdzie treść jest traktowana jako skrypt do przetworzenia. Do określenia w pliku co jest kodem HTML a co PHP służą specjalne znaczniki. Początkowo parser jest w trybie HTML. Aby przejść do trybu PHP można użyć jednego z czterech znaczników: 1. skrócone: <? echo ("to jest najprostsza metoda, podobna do SGML'u\n"); ?>; uwaga - short_open_tag = on 2. standardowe: <?php echo("jeśli serwujesz pliki XML, użyj tej metody\n"); ?&>; 3. skryptowe: <script language="php"> echo ("niektóre edytory (np. FrontPage) nie lubią przetwarzania instrukcji"); </script> 4. ASP: <% echo ("Możesz też użyć metody podobnej do tej z ASP"); %> <%= ; # To jest skrót dla "<%echo .." %>; uwaga – asp_tags = on 19-09-2009 Technologie internetowe II

Podstawy programowania PHP Niby-funkcja echo: dla większości normalnych funkcji parametry trzeba podawać w nawiasach, w przypadku funkcji echo można je pominąć, "echo" jest elementem składni języka, służy do wysyłania tekstu podanego jako parametr do przeglądarki użytkownika . echo nie wysyła znaku końca linii, więc w miejscu końca linii trzeba wstawić \n Funkcja print() – działanie podobne, zwraca wartość. 19-09-2009 Technologie internetowe II

Technologie internetowe II Pierwszy program <?php echo "Witaj sieci!"; ?> lub print ("Witaj sieci!„); 19-09-2009 Technologie internetowe II

Drugi program – łączenie z HTML <head> <title>Skrypt PHP zawierający HTML</title> </head> <body> <b> <?php echo "witaj świecie"; ?> </b> </body> </html> 19-09-2009 Technologie internetowe II

Technologie internetowe II Składnia Zakańczanie - umieszczenie na końcu każdej instrukcji (niekoniecznie linii) znaku średnika (';'). Można pominąć gdy jest przejście do trybu HTML. Komentarz – zaznaczanie tekstu nie będącego programem. Są 3 sposoby: Znak // Znak # Pomiędzy znakami /* a */ Przykład: <? echo „cokolwiek"; // jak w C/C++ echo „cokolwiek 2"; # jak w UNIX shell /* komentarza w kilku liniach */ ?> 19-09-2009 Technologie internetowe II

Typy danych, stałe i zmienne, operatory i wyrażenia

Technologie internetowe II Zmienne Zmienne oznacza się za pomocą znaku dolara ('$') przed identyfikatorem. Zmienna jest inicjalizowana przy pierwszym jej użyciu. Nazwy zmiennych muszą zaczynać się od litery (dużej lub małej) lub "underscore" (dolna kreska - '_') a dalej mogą się składać z dowolnej ilości liter, cyfr i znaków o kodzie ASCII powyżej 127. Przy nazwach zmiennych ważna jest wielkość znaków - zmienne $Test i $test to dwie różne zmienne. Zmienne są widoczne tylko wewnątrz funkcji lub skryptu, w którym się znajdują. 19-09-2009 Technologie internetowe II

Przykłady użycia zmiennych <? $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 ?> 19-09-2009 Technologie internetowe II

Technologie internetowe II Typy zmiennych 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) ?> 19-09-2009 Technologie internetowe II

Technologie internetowe II Ustalenie typu PHP sam ustala typ zmiennej, zależnie od kontekstu: <? $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ą (1.3) $blah = 5 + "10 Malutkich Świnek"; // jest wartością całkowitą (15) $blah = 5 + "10 Małych Świń"; // jest wartością całkowitą (15) ?> 19-09-2009 Technologie internetowe II

Technologie internetowe II Zmiana typu Podczas przypisywania zmiennej nowej wartości, poprzednia wartość jest oczywiście zamazywana. W takim przypadku typ zmiennej ustalany jest od nowa. Jeśli jednak zachodzi potrzeba zmiany typu lub PHP błędnie rozpoznaje typ, to można tego dokonać za pomocą rzutowania (cast - efekt jest jednorazowy) lub za pomocą ustalenia typu - funkcja settype (efekt trwały). 19-09-2009 Technologie internetowe II

Technologie internetowe II Rzutowanie typu 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 19-09-2009 Technologie internetowe II

Technologie internetowe II Rzutowanie typu <?php $nieokreslona = 3.14; $chwila = (double) $nieokreslona; echo "czy ".$chwila." jest typu double? ".is_double($chwila)."<br/>"; // double $chwila = (string) $nieokreslona; echo "czy ".$chwila." jest typu string? ".is_string($chwila)."<br/>"; // string $chwila = (integer) $nieokreslona; echo "czy ".$chwila." jest typu integer? ".is_integer($chwila)."<br/>"; // integer $chwila = (boolean) $nieokreslona; echo "czy ".$chwila." jest typu boolean? ".is_bool($chwila)."<br/>"; // boolean echo "<hr/>"; echo "pierwotny typ zmiennej $nieokreslona: "; echo gettype($nieokreslona); // double ?> 19-09-2009 Technologie internetowe II

Technologie internetowe II Ustalenie typu Funkcja settype pobiera 2 argumenty. Pierwszym jest nazwa zmiennej do ustalenia typu, a drugim ciąg określający nowy typ zmiennej: "integer" "double" "string" "array" "object" Funkcja zwraca wartość "true" gdy wszystko poszło pomyślnie, w przeciwnym razie zwracana jest wartość "false". 19-09-2009 Technologie internetowe II

Technologie internetowe II Ustalenie typu <?php $nieokreslona = 3.14; echo "czy ".$nieokreslona." jest typu double? ".is_double($nieokreslona)."<br/>"; // double settype($nieokreslona, 'string'); echo "czy ".$nieokreslona." jest typu string? ".is_string($nieokreslona)."<br/>"; // string settype($nieokreslona, 'integer'); echo "czy ".$nieokreslona." jest typu integer? ".is_integer($nieokreslona)."<br/>"; // integer settype($nieokreslona, 'double'); settype($nieokreslona, 'bool'); echo "czy ".$nieokreslona." jest typu boolean? ".is_bool($nieokreslona)."<br/>"; // boolean ?> 19-09-2009 Technologie internetowe II

Technologie internetowe II Testowanie typu <?php $testing; // deklaracja bez przypisania wartości echo "typ null? ".is_null($test); // sprawdza, czy wartość jest typu null $testing = 5; echo "typ integer? ".is_int($test); // sprawdza, czy wartość typu integer $testing = "five"; echo "typ string? ".is_string($test); // sprawdza, czy wartość typu string $testing = 5.024; echo "typ double? ".is_double($test); // sprawdza, czy wartość typu double $testing = true; echo "typ boolean? ".is_bool($test); // sprawdza, czy wartość typu boolean $testing = array('apple', 'orange', 'pear'); echo "tablica? ".is_array($test); // sprawdza, czy wartość typu array echo "wartość numeryczna? ".is_numeric($test); // sprawdza, czy wartość numeryczna echo "zasób? ".is_resource($test); // sprawdza, czy jest to zasób ?> 19-09-2009 Technologie internetowe II

Zmienne predefiniowane (superglobalne) W każdym skrypcie PHP dostępne jest kilka zmiennych, których wartość jest ustalana na podstawie zmiennych środowiskowych serwera WWW. Dostępne są jak zwykłe zmienne - ze znakiem dolara przed nazwą. Zmienne dzielą się na: ustawiane przez serwer WWW ustawiane przez PHP 19-09-2009 Technologie internetowe II

Technologie internetowe II Tablice $_GET – zmienne przesłane do skryptu metodą GET $_POST – zmienne przesłane do skryptu metodą POST $_COOKIE – zmienne przesłane do skryptu metodą COOKIE $_FILES – zmienne przesłane do skryptu przez wysłanie pliku $_SERVER – wysłane nagłówki, ścieżkę do pliku, adres skryptu $_ENV – wartości zmiennych środowiskowych serwera $_REQUEST – zmienne przesłane do skryptu przez użytkownika $_SESSION – zmienne zarejestrowane w aktualnej sesji 19-09-2009 Technologie internetowe II

Zmienne ustawiane przez serwer WWW GATEWAY_INTERFACE - Informacja o specyfikacji CGI używanej przez serwer, np. 'CGI/1.1'. 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. SERVER_SOFTWARE - Ciąg identyfikujący serwera podawany przy odpowiadaniu na zapytania SERVER_PROTOCOL - Nazwa i numer wersji protokołu za pomocą którego wysłano zapytanie o stronę, np. 'HTTP/1.0'; REQUEST_METHOD - Metoda zapytania użyta do uzyskania dostępu do strony, np. 'GET', 'HEAD', 'POST', 'PUT'. QUERY_STRING - Ciąg zapytania (jeśli takowy istnieje) za pomocą którego połączono się ze stroną. DOCUMENT_ROOT - Katalog główny drzewa dokumentów spod którego skrypt jest wykonywany - jest to ustawienie z pliku konfiguracyjnego serwera. 19-09-2009 Technologie internetowe II

Zmienne ustawiane przez serwer WWW HTTP_ACCEPT - Nagłówek z aktualnego zapytania, jeśli taki istnieje. HTTP_ACCEPT_CHARSET - Zawartość nagłówka "Accept-Charset" z aktualnego zapytania, jeśli taki istnieje, np. 'iso-8859-1,*,utf-8'. HTTP_ENCODING - Zawartość nagłówka "Accept-Encoding" z aktualnego zapytania, jeśli taki istnieje, np. 'gzip'. HTTP_ACCEPT_LANGUAGE - Zawartość nagłówka "Accept-Language" z aktualnego zapytania, jeśli taki istnieje, np. 'en'. HTTP_CONNECTION - Zawartość nagłówka "Connection" z aktualnego zapytania, jeśli taki istnieje, np. 'Keep-Alive'. HTTP_HOST - Zawartość nagłówka "Host" z aktualnego zapytania, jeśli taki istnieje. HTTP_REFERER - Adres strony (jeśli taka była), która wskazała przeglądarkę do tej strony. Wartość ta jest ustawiana przez przeglądarkę - nie wszystkie to robią. 19-09-2009 Technologie internetowe II

Zmienne ustawiane przez serwer WWW HTTP_USER_AGENT - Zawartość nagłówka "User-Agent" z zapytania, jeśli taki istnieje. Jest to ciąg informujący o przeglądarce która została użyta do obejrzenia bieżącej strony, np. Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Można użyć funkcji get_browser() aby dopasować funkcjonalność strony do przeglądarki użytkownika. REMOTE_ADDR - Adres IP z którego użytkownik ogląda bieżącą stronę. REMOTE_PORT - Port używany do komunikacji pomiędzy użytkownikiem a serwerem. SCRIPT_FILENAME - Ścieżka do aktualnie wykonywanego skryptu. SERVER_ADMIN - Wartość podana dla opcji SERVER_ADMIN w konfiguracji serwera WWW. Jeśli skrypt działa na wirtualnym serwerze, to będzie to wartość podana dla tego wirtualnego serwera. SERVER_PORT - Port na serwerze którego użyto do połączenia. Dla normalnych połączeń będzie to '80'. SERVER_SIGNATURE - Ciąg zawierający wersję i nazwę wirtualnego hosta który jest dodawany do stron generowanych przez serwer. SCRIPT_NAME - Zawiera ścieżkę do aktualnie wykonywanego pliku. Jest to przydatne do skyptów, które muszą wskazywać samego siebie. REQUEST_URI - URI który został podany aby uzyskać dostęp do tej strony. 19-09-2009 Technologie internetowe II

Zmienne ustawiane przez PHP argv - Tablica argumentów przekazywanych 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). argc - Zawiera liczbę parametrów podanych podanych do skryptu w linii poleceń (jeśli skrypt został wywołany z linii poleceń). PHP_SELF - Nazwa pliku aktualnie wykonywanego skryptu, względna do katalogu głównego dokumentów. Ta zmienna jest niedostępna jeśli PHP jest uruchamiany z linii poleceń. HTTP_COOKIE_VARS - Tablica asocjacjna zmiennych przekazanych do skryptu przez HTTP cookies. 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_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?>. 19-09-2009 Technologie internetowe II

Stałe ustawiane przez parser __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. 19-09-2009 Technologie internetowe II

Stałe definiowane przez użytkownika <?php define("ROK", "2006"); echo "Mamy rok ".ROK; ?> 19-09-2009 Technologie internetowe II

Technologie internetowe II Operatory Operatory - symbole, które służą do operacji na zmiennych. Operatory dzielą się na: operatory arytmetyczne, operatory przypisania, operatory operacji bitowych, operatory porównania, operator kontroli błędów, operator wywołania (uruchamianie zewnętrznych programów), operatory inkrementacji i dekrementacji, operatory logiczne operatory ciągu. 19-09-2009 Technologie internetowe II

Operator przypisania, operator konkatenacji Podstawowym operatorem przypisania jest symbol '='. Zmiennej można przypisać także wartość innej zmiennej: $b = 5; $a = $b. Zmiennym można przypisywać wartości innych zmiennych. Wartości te można przypisywać kaskadowo, przy czym wartości przypisywane będą od prawej do lewej. Operator konkatenacji . np. „Ala”.”kot” -> Alakot. 19-09-2009 Technologie internetowe II

Operatory arytmetyczne Przykład Nazwa Wynik $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 $a % $b Modulo Reszta z dzielenia $a przez $b Operator konkatenacji . np. „Ala”.”kot” -> Alakot 19-09-2009 Technologie internetowe II

Technologie internetowe II Operator przypisania Przykład Wynik $a += 2 Do zmiennej $a dodane zostanie 2 $a -= 2 Od zmiennej $a odjęte zostanie 2 $a *= 2 Zmienna $a zostanie pomnożona przez 2 $a /= 2 Zmienna $a dodane podzielona przez 2 $a %= 2 Zmienna $a przyjmie wartość reszty z dzielenia $a przez 2 $a .= " dalszy ciąg" Do zmiennej $a na końcu dodany zostanie ciąg " dalszy ciąg" 19-09-2009 Technologie internetowe II

Operatory operacji bitowych Przykład Nazwa Wynik $a & $b AND Ustawiane są bity które są ustawione w obu zmiennych. $a | $b OR Ustawiane są bity, które są ustawione w jednej lub drugiej zmiennej. $a ^ $b XOR Ustawiane są bity, które są ustawione w jednej lub drugiej zmiennej, ale nie w obu. ~ $a NOT Inwerter - ustawiane są bity które nie są ustawione w zmiennej $a i odwrotnie. $a << $b Przesunięcie w lewo Przesuń bity z $a $b-razy w lewo (każdy krok oznacza pomnożenie przez 2) $a >> $b Przesunięcie w prawo Przesuń bity z $a $b-razy w prawo (każdy krok oznacza podzielenie przez 2) 19-09-2009 Technologie internetowe II

Technologie internetowe II 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. 19-09-2009 Technologie internetowe II

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 ''"); ?> 19-09-2009 Technologie internetowe II

Technologie internetowe II 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. <? $wynik = `ls -l /home/`; echo $wynik; ?> Po uruchomieniu tego skryptu wyświetlona zostanie zawartość katalogu /home na serwerze. 19-09-2009 Technologie internetowe II

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. 19-09-2009 Technologie internetowe II

Operatory inkrementacji i dekrementacji <? echo "<h3>Postinkrementacja"; $a = 5; echo "Powinno być 5: " . $a++ . "<br>\n"; echo "Powinno być 6: " . $a . "<br>\n"; echo "<h3>Preinkrementacja"; echo "Powinno być 6: " . ++$a . "<br>\n"; echo "<h3>Postdekrementacja"; echo "Powinno być 5: " . $a-- . "<br>\n"; echo "Powinno być 4: " . $a . "<br>\n"; echo "<h3>Predekrementacja;"; echo "Powinno być 4: " . --$a . "<br>\n"; echo "Powinno być 4: " . $a . "<br>;\n"; ?> 19-09-2009 Technologie internetowe II

Technologie internetowe II Operatory logiczne Nazwa Symbol suma logiczna (LUB) || iloczyn logiczny (ORAZ) && negacja (NIE) ! 19-09-2009 Technologie internetowe II

Instrukcje warunkowe i instrukcje pętli

Technologie internetowe II Struktury kontrolne Instrukcje warunkowe Instrukcje pętli: For While Do … while Break Instrukcja switch 19-09-2009 Technologie internetowe II

Technologie internetowe II Instrukcje warunkowe <? 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 ?> Wyrażeniem warunkowym jest dowolne wyrażenie. Za warunek uznawane jest wszystko co zwraca wartość, czyli wszystkie zmienne, wyrażenia logiczne, funkcje itp. Spełniony warunek - wartość większa od zera. 19-09-2009 Technologie internetowe II

Technologie internetowe II Instrukcje warunkowe <?php $nastroj = "smutny"; if ($nastroj == "radosny") { echo "Hurrra, jestem w dobrym nastroju!";} else { echo "Mój nastrój jest $nastroj.";} ?> Jeśli chcemy, aby po sprawdzeniu warunku wykonane zostało nie jedno, ale kilka poleceń, to te polecenia trzeba ująć w nawiasy klamrowe. 19-09-2009 Technologie internetowe II

Technologie internetowe II Instrukcje warunkowe <?php $nastroj = "smutny"; if ($nastroj == "radosny") { echo "Hurrra, jestem w dobrym nastroju!";} else if ($nastroj == "smutny") { echo "Nie martw się, wszystko będzie dobrze!";} else { echo "Ani wesoły, ani smutny, ale $nastroj.";} ?> 19-09-2009 Technologie internetowe II

Technologie internetowe II Instrukcje warunkowe <? $a = 6; $b = 5; $c = 7; $d = 6; $e = 6; 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 ?> 19-09-2009 Technologie internetowe II

Technologie internetowe II Pętla for <? for( inicjalizacja zmiennych ; sprawdzenie warunku ; modyfikacja zmiennych) { blok wyrażeń } ?> 19-09-2009 Technologie internetowe II

Technologie internetowe II Pętla for – przykład 1 <?php for ($licznik=1; $licznik<=12; $licznik++) { echo "$licznik razy 2 to ".($licznik * 2)."<br>";} ?> 19-09-2009 Technologie internetowe II

Technologie internetowe II Pętla for – przykład 2 <?php for ($licznik=1; $licznik<=10; $licznik++) { $tymcz = 4000/$licznik; echo "4000 dzielone przez $licznik to... $tymcz<br>"; } ?> 19-09-2009 Technologie internetowe II

Technologie internetowe II Pętla for – przykład 3 <?php $licznik = -4; for (; $licznik <= 10; $licznik++) { if ($licznik == 0) { break; } else { $tymcz = 4000/$licznik; echo "4000 dzielone przez $licznik to... $tymcz<br>"; } } ?> 19-09-2009 Technologie internetowe II

Technologie internetowe II Pętla while <? while( warunek ) { ... instrukcje ... } ?> 19-09-2009 Technologie internetowe II

Technologie internetowe II For przez while <? $x=1; while($x <= 10) { echo $x."<br>"; $x++; } ?> 19-09-2009 Technologie internetowe II

Technologie internetowe II Przykład while <?php $licznik = 1; while ($licznik <= 12) { echo "$licznik razy 2 to ".($licznik * 2)."<br>"; $licznik++; } ?> 19-09-2009 Technologie internetowe II

Technologie internetowe II Pętla do…while <? do{ ... instrukcje ... }while( warunek ); ?> Polecenia zawarte w pętli będą wykonane przynajmniej raz. 19-09-2009 Technologie internetowe II

Technologie internetowe II Przykład do…while <?php $num = 1; do { echo "Liczba: $num<br>"; $num++;} while (($num > 200) && ($num < 400)); ?> 19-09-2009 Technologie internetowe II

Technologie internetowe II Przerywanie pętli continue - przerwanie danej iteracji pętli i przejście do następnej iteracji. break - całkowite wyjście z pętli - nie tylko z bieżącej iteracji. 19-09-2009 Technologie internetowe II

Technologie internetowe II Przykład continue <?php $licznik = -4; for (; $licznik <= 10; $licznik++) { if ($licznik == 0) { continue; } $tymcz = 4000/$licznik; echo "4000 dzielone przez $licznik to... $tymcz<br>"; } ?> 19-09-2009 Technologie internetowe II

Technologie internetowe II Przykład break <?php $licznik = -4; for (; $licznik <= 10; $licznik++) { if ($licznik == 0) { break; } $tymcz = 4000/$licznik; echo "4000 dzielone przez $licznik to... $tymcz<br>"; } ?> 19-09-2009 Technologie internetowe II

Technologie internetowe II Switch <? switch($zmienna) { case 'wartość1': ... instrukcje ... break; case 'wartość2': ... instrukcje ... break; …. default: ... instrukcje ... } ?> 19-09-2009 Technologie internetowe II

Technologie internetowe II Switch Jedną zmienną można porównać nie z jedną wartością, ale z kilkoma. Nie można konstruować złożonych warunków. Instrukcje zawarte po identyfikatorze "default" wykonywane są jeśli zmienna $zmienna nie przyjęła wartości "wartość1" i "wartość2 ". Instrukcje są przetwarzane linia po linii. Parser przechodzi do pierwszej linii "case" pasującej do zmiennej. Następnie przetwarzane są wszystkie linie wewnątrz nawiasów klamrowych aż do napotkania instrukcji break - nawet jeśli po drodze znajdują się instrukcje "case ". 19-09-2009 Technologie internetowe II

Technologie internetowe II Przykład switch <?php $nastroj = "smutny"; switch ($nastroj) { case "radosny": echo "Hurrra, jestem w dobrym nastroju!"; break; case "smutny": echo "Nie martw się, wszystko będzie dobrze!"; break; default: echo "Ani wesoły, ani smutny, ale $nastroj."; break; } ?> 19-09-2009 Technologie internetowe II

Technologie internetowe II Przykład switch 2 <? $i = 3; 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"; } ?> 19-09-2009 Technologie internetowe II

Tablice

Technologie internetowe II Tablice Tablice to 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 indeks - numer kolejny zmiennej w tablicy. 19-09-2009 Technologie internetowe II

Przypisanie wartości tablicy <? $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"; ?> 19-09-2009 Technologie internetowe II

Technologie internetowe II Wypełnianie tablicy 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, a nawet z innej tablicy czy funkcji. Elementem tablicy może być każdy typ zmiennej (z innymi tablicami i obiektami włącznie). 19-09-2009 Technologie internetowe II

Przykład wypełniania tablicy <? $tab1[] = 1; $tab1[] = 0; $tab1[] = 3; $tab1[] = 2; $tab2[] = "Pierwszy"; $tab2[] = "Drugi"; $tab2[] = "Trzeci"; $tab2[] = "Czwarty"; echo $tab2[$tab1[2]]; ?> 19-09-2009 Technologie internetowe II

Przykład złożonej tablicy <?php $postaci = array( array( "imię" => "Robert", "zawód" => "superbohater", "wiek" => 30, "specjalna moc" => "rentgen w oczach" ), array( "imię" => "Ania", "zawód" => "superbohater", "wiek" => 24, "specjalna moc" => "nadludzka siła" ), array( "imię" => "Kasia", "zawód" => "czarny charakter", "wiek" => 45, "specjalna moc" => "nanotechnologia" ) ); foreach ($postaci as $c) { while (list($k, $v) = each ($c)) { echo "$k ... $v <br/>"; } ?> 19-09-2009 Technologie internetowe II

Technologie internetowe II Tablica asocjacyjna <? $tablica["imie"] = "Jan"; $tablica["nazwisko"] = "Kowalski"; $tablica["adres"] = "Polna 1"; echo $tablica["imie"]." ".$tablica["nazwisko"].", ul. ".$tablica["adres"]."\n"; ?> 19-09-2009 Technologie internetowe II

Technologie internetowe II Przeglądanie tablicy Indeks może być zmienną w pętli for. Funkcja count( $nazwa_tablicy ) zwraca ilość elementów w tablicy podanej jako parametr. W przypadku tablicy asocjacyjnej należy skorzystać z funkcji list() i each(). Przy przechodzeniu przez tablice asocjacyjne trzeba wykorzystać pętlę while. 19-09-2009 Technologie internetowe II

Przykład przeglądania tablicy <? $tbl[] = 1; $tbl[] = 2; $tbl[] = 3; $tbl[] = 4; $tbl[] = 5; for( $x = 0; $x < count($tbl); $x++ ) { echo $tbl[$x]; } ?> 19-09-2009 Technologie internetowe II

Przykład przeglądania tablicy asocjacyjnej <? $tablica["imie"] = "Jan"; $tablica["nazwisko"] = "Kowalski"; $tablica["adres"] = "Polna 1"; while( list($klucz, $wartosc) = each($tablica) ) echo "$klucz => <BR>"; ?> 19-09-2009 Technologie internetowe II

Niektóre funkcje operujące na tablicach asort() - sortuje tablice asocjacyjne zachowując przypisanie kluczy do wartości arsort() - sortuje w odwrotnej kolejności tablice asocjacyjne zachowując przypisanie kluczy do wartości ksort() - sortuje tablice asocjacyjne według kluczy 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 19-09-2009 Technologie internetowe II

Technologie internetowe II Przykład <? $owoce = array ("d"=>"mango", "a"=>"papaja", "b"=>"banan", "c"=>"aronia"); asort ($owoce); reset ($owoce); // Funkcja ta powoduje powrót do pierwszego elementu tablicy while (list ($klucz, $wartosc) = each ($owoce)) { echo "$klucz = $wartosc\n"; } ?> asort arsort ksort c = aronia a = papaja b = banan d = mango 19-09-2009 Technologie internetowe II