dareks_

  • Dokumenty2 821
  • Odsłony754 023
  • Obserwuję432
  • Rozmiar dokumentów32.8 GB
  • Ilość pobrań362 067

PHP5

Dodano: 6 lata temu

Informacje o dokumencie

Dodano: 6 lata temu
Rozmiar :3.2 MB
Rozszerzenie:pdf

PHP5.pdf

dareks_ EBooki Infornatyka
Użytkownik dareks_ wgrał ten materiał 6 lata temu.

Komentarze i opinie (0)

Transkrypt ( 6 z dostępnych 6 stron)

UMIESZCZANIE SKRYPTÓW W KODZIE HTML Skrypty PHP są najczęściej wykonywane przez serwer WWW. Do wyodrębnienia kodu skryptu od innych elementów (np. koduHTML) niezbędne jest umieszczenie go wewnątrz znacz­ ników. Parser (analizator składniowy) PHP będzie przetwa­ rzał jedynie ten fragment kodu,który znajdzie się pomiędzy znacznikiem otwierającym i zamykającym. Do dyspozycji są cztery typy znaczników: • znaczniki kanoniczne, • znaczniki typu SGML(skrócone), • znaczniki typu ASP, • znacznikiskryptówHTML. ?:nac�niki �noniczn� Znaczniki kanoniczne to standardowe i najczęściej spotykane znaczniki PHP w postaci:Są one rozpoznawane zawsze,niezależnieod tego,jakie opcje włączy się w pliku konfiguracyjnym. Zaleca się stosowanie wyłącznie takich znaczników. Znaczniki typu SGML mają następującą postać:Jest to najkrótsza forma znaczników bloku PHP,jaką można zastosować. By skorzystać z tego sposobuzagnieżdżania kodu PHP, należy w pliku konfiguracyjnym php.ini umieścić linię short open tag = On lub włączyć opcję enable­ short=tagspodczas kompilacji pakietu. Nie należy ichsto­ sowaćwprzypadkuzagnieżdżaniakoduPHP wplikachXHTML. Znaczniki typu ASP Znaczniki tego typu wywodzą się z techniki ASP. Mają one postać:<% // kod skryptu �>KOMENTARZE W kodzie PHP można zastosować trzy rodzaje komentarzy, dwa zapożyczone ze składnijęzyków takich jak C i C++ i jeden stosowany w powlokach uniksowych: • komentarz blokowy, • komentarz jednowierszowy, • komentarz jednowierszowy uniksowy. Komentarz blokowy Ten typ komentarza zaczyna się od sekwencji znaków I*, a kończy sekwencją *I. Wszystko to,co znajduje się pomię­ dzy nimi,zostanie zignorowane przez analizator składniowy PHP:To j est komentar:: blokowy */ Należy pamiętać,że komentarz ten koniecznie musi znaleźć się w bloku PHP. Nie wolno też dokonywać jego zagnieżdża- ELEMENTY JĘZYKA Typy danych Występujące w PHP typy danych można podzielić na: • typy proste(skalarne,ang. primitive types, scalar types), • typy złożone(ang. compound types, camp/ex types), • typy specjalne(ang. specialtypes). Typy proste Typ boołean Typ logiczny przyjmujący jedną z dwóch wartości: true (prawda)lub false(fałsz).W przypadkukonwersji innych ty­ pów natypboolean obowiązuje zasada,że wartość fal se powstaje z przekształcenia: • typu integer o wartości O, • typu double o wartości o, • typu łańcuchowego o wartości pustej " " , • typu łańcuchowego o wartości "o", • tablicy ozerowej liczbie elementów, • typu obiektowego o zerowej liczbie elementów, • typu specjalnego null, • obiektu SimpleXML, utworzonego z pustych znaczników. W każdym innym przypadku w wyniku konwersji otrzymywa­ na jest wartość true. Typinteger Typ całkowitoliczbowy(oznaczany jako int),reprezentujący zarówno dodatnie, jak i ujemne liczby całkowite. Liczby te mogą być zapisane w trzech różnych formatach: dziesiętnym, ósemkowym (oktalnym) i szesnastkowym (heksadecymal­ nym). Domyślnie stosowany jest format dziesiętny. Aby zapi­ sać liczbę ósemkową,należy poprzedzić ją znakiem o(zero), liczbę szesnastkową należy poprzedzić znakami Ox lub ox: • literał16 to liczba w systemiedziesiętnymo wartości 16, • literał02 o toliczbaósemkowaowartości16 dziesiętnie, • literał ox1o to liczba szesnastkowa o wartości 16 dziesiętnie. Maksymalny zakres typu całkowitego zależy od platformy sprzętowo-systemowej, na jakiej uruchamiane jest PHP. Typowe zakresy wartości: System Liczba bajtów Min. Maks. 32-bitowy -231 231_1 64-bitowy -263 263_1 Abymóc korzystaćz tego typuwyróżnienia blokówPHP,należy w pliku konfiguracyjnym włączyć opcję asp tags = on. Możliwość stosowania znaczników ASP zostaTa wprowadzona w PHP w wersji 3.0.4. Nie zaleca się wykorzystywania tej opcji. Znac�niki skryp!óW HTML Jest to typowy znacznik Postać ta, podobnie jak postać kanoniczna,jest rozpoznawa­ na standardowo i nie wymaga włączania dodatkowych opcji konfiguracyjnych. W przypadku zagnieżdżania skryptów w kodzie HTML lub XHTML nie należy stosować takich znacz­ ników,ponieważ są niezgodne z aktualnymi standardami. Najprostszy skrypt po prostu wyświetla napis na ekranie. Aby go napisać,można użyć instrukcji echo (" tekst " ) ; lub print ( " teks t " I;. Po umieszczeniu jej między znacznikami PHP i zagnieżdżeniu w kodzie HTML(4.01 strict) uzyskamy:< ! DOCTYPE HTML PUBLIC " - / /"3C/ /DTD HTML '-"4. 01//EN" "h ttp : / / www . 1·13. org/TR/ h tm14 /stri ct . d td" :>M.oja strona WW'W

Zarówno w przypadku echo, jak i print można pomi­ nąć nawias okrągły, np.: echo "tekst " ; lub print " tekst " ; . nia. Bez problemu można natomiast zastosować wewnątrz komentarza blokowego komentarze jednowierszowe. K.Q_�en_!ar_� je_Q!I01ivięrs?_ owy Komentarz tego typu rozpoczyna się od znaków II i obo­ wiązuje do końca bieżącego wiersza. Można go umieszczać jedynie w blokuPHP.Komentarz jednowierszowy uniksowy Komentarztegotypurozpoczyna się od znaku fr i obowiązuje do końca bieżącego wiersza. Jego składnia pochodzi z syste­ mu Unix. Można go umieszczać jedynie w blokuPHP.Rozmiar typu w danej implementacji może być odczytany ze stałej PHP INT srzE, natomiast maksymalna dopusz­ czalna wartośc -ze stałej PHP INT MAX. W przypadku przekroczenia zakresu wartość jest konwertowana na typ double. Przy konwersji z typów boolean i double na typ i nte­ ger obowiązują następujące zasady: • Konwersja z typuboolean o wartości true daje w wyniku 1. • Konwersja ztypuboolean o wartości false daje w wyniku O. • Konwersja z typu double powoduje zaokrąglenie w dół do najbliższej liczby całkowitej. Uwaga: jeśli wartość typu double przekracza zakres liczb typu in teger, wartość,jaka powstaje w wyniku konwersji jest nieokreślona. W przypadku konwersji z typu string obowiązują nastę­ pujące zasady: • Jeśli ciąg znakówrozpoczyna się od prawidłowejliczby całkowitej nieprzekraczającej dopuszczalnego zakresu (np.: "256", "-512" ,"64xyz"),wynikiemjest wartośćreprezentowana przez ten ciąg. • Jeśli ciąg znaków rozpoczyna się od prawidłowej liczby zmiennopozycyjnej(np.: " 1. 2 ", " -2. 4 " ," 3 . 6e2 " , " 2 . 8e4xyz") lub przekracza dopuszczalny zakres, najpierw wykonywana jest konwersja do typu double. • Jeśli ciąg znaków nie rozpoczyna się odprawidłowej liczby,wynikiemjest wartość zero. Konwersja z innych typów niż wymienione nie została zdefi­ niowana i takiej konwersji nie należy wykonywać. Uwaga: konwersja pojedynczego znaku do typu integer nie daje w rezultacie kodutegoznaku.W celuuzyskania kodu znaku należy korzystać z funkcji ord i chr. Typ doubłe Typ double(oznaczany również jako float) reprezentuje liczby zmiennopozycyjne (ang. f/oating point). Ich zakres, podobniejak dla typu integer, zależy od platformy sprzę­ towo-systemowej(z reguły maksymalna wartość jest zbliżona do 1.8e308). Typową reprezentacją jest zapis z kropką dzie­ siętną,czyli np. 1 . 5. Można również używać notacji wykład­ niczej,w postaci xeY, gdzie x jest liczbą w notacji z kropką dziesiętną,a Y to żądana potęga liczby 10, np.: • 1.2el to 12, • 4e2to400, • 0.12e3to120. W przypadku konwersji do typu zmiennoprzecinkowego ze wszystkich typów,z wyjątkiem łańcuchowego, najpierw wykonywana jest konwersja do typu i n teger, a następnie z i n teger do double(przy próbie wykonania konwersji z typu obiektowego zostanie wygenerowane ostrzeżenie). Przy konwersji z typu s tring obowiązują następujące zasady: • Jeśli ciąg znaków rozpoczyna się od prawidłowej liczby całkowitej(np.: "2 56", "-512", " 64xyz "),której wartość nie przekracza dopuszczalnego zakresu dla typu integer, najpierwjest wykonywana konwersja do typu integer. • Jeśli ciąg znaków rozpoczyna sięod prawidłowej liczby zmiennopozycyjnej(np.: "1.2 " ,"-2. 4", " 3 . 6e2 " , "2. 8e4xyz ") bądź też zaczyna się od liczby całkowitej przekraczającej dopuszczalny zakres dla typu integer, wynikiem jest wartość reprezentowana przez ciąg. • Jeśli ciąg znaków nie rozpoczyna się od prawidłowej liczby,wynikiem jest wartość O. Typ string Typ s tring, to typ łańcuchowy,który służy do zapamięty­ wania sekwencji znaków. Nie ma ograniczenia dlugości ciągu. Pojedynczyznak zapamiętywany jest najednym bajcie,nie ma więc bezpośredniej obsługi standardu Unicode. Łańcuch zna­ ków można utworzyć wjednym z czterechsposobów zapisu: • wykorzystując znaki apostrofu, • wykorzystując znaki cudzysłowu, • wykorzystując składnię heredoc, • wykorzystując składnię nowdoc(od PHP w wersji 5.3.0). Znaki apostrofu Najprostszym sposobem deklaracji łańcucha znakowego jest ujęcie go w znaki apostrofu. PHP nie dokonuje interpretacji takiego ciągu, wyświetlany jest on zatem w niezmienionej postaci: 'Przykładowy łańcuch znakQ\·11 Wyjątkiem jest jedynie sam znak apostrofu. Aby go uzyskać, należy poprzedzić go znakiem lewego ukośnika(backslash): ' Znak aP.2strofJJ...l:l.ygląda tak : \ ' ' Znaki cudzysłowu Ciągi znaków ujęte w cudzysłów są przetwarzane przez PHP. Występujące w nich zmienne są zamieniane na wartości tych zmiennych. Obowiązują przy tym następujące zasady: • Jeżelizmiennajest typuznakowego,zawarty w niej ciąg znakówjest wklejany do ciągu bieżącego. • Jeżeli zmiennajest innego typu niż znakowy,najpierw następuje jej konwersja na typ s tring, a następnie zostajeona wklejona do ciągu bieżącego. • Jeżeli zmienna nie zawiera żadnej wartości,jest trakto­ wana jak pusty ciąg znaków. W ciągach tego typu można stosować sekwencje znaków specjalnych: • \n-nowy wiersz, • \r - powrót karetki, • \t - tabulator poziomy, • \v-tabulator pionowy, • \f - przewinięcie strony, • \\ - ukośnik, • \$ - znak dolara, • \" - znak cudzysłowu. Jeśli ukośnikiem zostanie poprzedzona liczba, zostanie ona potraktowanajako kod znaku w notacjioktalnej(ósemkowej). Przykładowy ciąg: "\145\143\150\157" zostanie potraktowany tak samo,jak napis: "e..cho" Jeśli przed liczbą pojawi się sekwencja \x, zostanie ona po­ traktowana jako kod znaku w notacji heksadecymalnej(szes­ nastkowej). Przykładowy ciąg: " \x65 \x 63\>:68\x6F"' zostanie potraktowany tak samo,jak napis: "echo0 Składnia heredoc W przypadku składni heredoc łańcuch znakowy rozpoczy­ na się od sekwencji « <, po której następuje identyfikator. Następnie wykorzystuje się ten identyfikator,by zasygnalizo­ wać koniec łańcucha znakowego.<<Wybrane funkcje operujące na ciągachznaków Funkcja addcslashes(dostępna od PHP 4) Deklaracja: str ing addcslashes (s tring str, string charlist) Zwraca ciąg, w którym znaki wymienione w charlist zostały poprzedzone znakiem backslash (\). Znaki o kodach mniejszych od 32 i większych od 126 zostaną zamienione na postać oktalną. Przykładowo: wykonanie addcslashe­ s ('abcde ' , ' ab ' ) da w wyniku ciąg \a\bcdefgh. Funkcja addslashes(dostępna od PHP 3) Deklaracja: string addsl ashes (string str) Zwraca ciąg,w którym znaki specjalne(apostrof,cudzysłów, backslash oraz bajt zerowy NUL) zostaną poprzedzone zna­ kiem ukośnika. Funkcja jest najczęściej wykorzystywana do przetwarzania zapytań do baz danych. Funkcja bin2hex(dostępna od PHP 3.0.9) Deklaracja:s tring b in2hex (string str) Zwraca ciąg, w którym wszystkie znaki w s tr zostały przedstawione w postaci heksadecymalnej. Przykładowo: wywołanie bin2hex ( ' abcde ' I da w wyniku ciąg 6162 636465. Funkcja chr(dostępna odPHP 3) Deklaracja:string chr (in t ascii ) Zwraca ciąg zawierający znak o kodzie przekazanym w argu- mencie as ci i. Funkcja chunk_split(dostępna od PHP 3.0.6) Deklaracja: string ch unk spl i t (st ring body [, int chunklen - [ , s tring end]] I Dzieli ciąg body na mniejsze części o długości chunklen (domyślnie 76 znaków),dodając na końcu każdej linii ciąg end(domyślnieznaki końca linii \r\n). Funkcja convert_uudecode(dostępna od PHP 5) Deklaracja: string convert uudecode (s tring data) - Dekoduje dane zakodowane za pomocą algorytmu uuen- . code (np. przetworzone przez funkcję convert uuen- code). Zwraca rozkodowany ciąg znaków. - Funkcja convert_uuencode(dostępna od PHP 5) Deklaracja: string convert uuencode (string str) - Koduje ciąg znaków zapisany w argumencie s t r za pomocą algorytmu uuencode. Zwraca zakodowany ciąg znaków. Funkcja count_chars(dostępna od PHP 4) Deklaracja: mixed count chars I string str [ , i n t model I - Zlicza wystąpienia każdego bajta w ciągu str i zwraca wynik obliczeń w postaci wskazanej przez argument made(domyśl­ nie mocie ma wartość O): • O-tablica,w której kluczami są bajty,a wartościami kluczy liczba wystąpień danego bajta w ciągu; • 1-tak jak parametr O, z tą różnicą,że tablica nie uwzględnia kluczy,których wartość wynosi O; • 2-takjak parametr O, z tą różnicą,że tablica uwzględ­ nia wyłącznie klucze,których wartość wynosi O; • 3 - ciąg znaków zawierającyznaki występujące w ciągu st r; • 4-ciąg znaków,zawierający znaki niewystępujące w ciągu str. Funkcja crc32(dostępna od PHP 4.0.1) Deklaracja: i n t crc32 (string str) Oblicza 32-bitową sumę kontrolną ciągu str. Funkcja crypt(dostępna od PHP 3) Deklaracja: s tring crypt (string st r [ , string sal t ] I Koduje ciąg znaków str na podstawie funkcji szyfrujących, udostępnionych przez system operacyjny(typowo DES). Od PHP 5.3.0 zawiera własne implementacje algorytmów szyfru­ jących i generujących funkcje skrótu. Funkcja explode(dostępna od PHP 3) Deklaracja: array explode (string separ ator, string s tr[, int l imit ] I Dzieli ciąg znaków str na części rozdzielane znakami sepa­ ratora. Opcjonalny argument 1imit(dostępny od PHP 4.0.1) wskazuje maksymalną liczbę elementów tablicy wynikowej (od wersji 5.1.0 może mieć wartość ujemną). Jeśli argument separator będzie pustym ciągiem znaków,funkcja zwraca wartość fal se. Jeżeliznaki separatora nie będąwystępowa­ ły w ciągu str, zwróconyzostanie cały ciąg. Funkcja fprintf(dostępna od PHP 5) Deklaracja: int fprintf (resource handle, string format (, rnixed args [ , mi xed . „]] ) Zapisuje w strumieniu wskazywanym przez handle dane znajdujące się w argumentach args, sformatowane według argumentu format. Zwraca liczbę bajtów ciągu wyniko­ wego. Argument format może zawierać znaczniki opisane przy funkcji sprintf. Funkcja html_entity_decode(dostępna od PHP 4.3.0) Deklaracja: s t ri ng html enti ty deco- de (string str [' rnt ouot - e style r' string charset ] ] ) - - Wykonuje czynność odwrotną do funkcji htmlenti ties. Przykładowo ciąg: &1 t ; b> ; Napis< ; /b> ; zostanie zamieniony na:NapisOpcjonalny argument quot stylemożeprzyjmować war­ tości(domyślnie ENT COMP-:-l\T): • ENT COMP_l\T .=.konwersji zostaną poddane cudzysłowy; • ENT QUOTES - konwersji zostaną poddane apostrofy i cudzysłowy; • ENT NOQUOTES - apostrofy i cudzysłowy nie będą konwertowane. "Oąg dais;na s;;;;;ie2 "':ł

Ta blice informatyczne. PHP 5 Opcjonalny argument charset określa sposób kodowania znaków. Dopuszczalne wartości to: Wartość argumentu Alias Zestaw znaków I so-8859-1 1508859-1 zachodnioeuropejski,Latin1 IS0-8859-15 1508859-15 zachodnioeuropejski,Latin9 UTF-8 wielobajtowy,8-bitowy Unicode cp866 ibm866,866 cyrylica,strona kodowa 866(DOS) cpl251 Windows-1251,win-1251,1251 cyrylica,strona kodowa 1251(Windows) cpl25 2 Windows-1252, 1252 zachodnioeuropejski,strona kodowa 1252(Windows) KOI8-R koi8-ru, koi8r cyrylica BIGS 950 chiński tradycyjny GB2312 936 chiński uproszczony BIG5-HKSCS chiński tradycyjny z rozszerzeniem dla Hongkongu Shift JIS SJIS,932 japoński EUC-JP EUCJP japoński Pozostałe zestawy znaków nie są rozpoznawane i zamiast nich wykorzystywane jest kodowanie IS0-8859-1. Funkcja htmlentities(dostępna od PHP 3) Deklaracja: string htmlentities (string str [, int quote style [, string charset (, bool double encode]l l) Zamienia znaki specjalne HTML na ciągi w formacie &kod;. Na przykład ciąg Napiszostanie zmieniony na: <b>Napis</b>. Znaczenie opcjonal­ nych argumentów jest takie, jak w przypadku html en­ tity_decocle. Parametr double_encode (dostępny od PHP 5.2.3) określa, czy kodowane mają być istniejące encje HTML. Od PHP 5.3.0 argument quote_style może przyj­ mować dodatkową wartość ENT_IGNORE powodującą po­ mijanienieprawidłowych encji HTML. Funkcjahtmlspecialchars_decode(dostępnaod PHP 5.1.0) Deklaracja: string htmlspecialchars clecode (string str [, int quote style] )­ Przekształca encje specjalne na odpowiadające im znaki. Funkcja odwrotna do htmlspecialchars. Funkcja htmlspecialchars(dostępna od PHP 3) Deklaracja: string htmlspecialchars (string str [, int quote style [, string charset [' bool double encode]l l) Znaczenie jest takie samo,jak funkcji htmlentities, z tą różnicą,że zamieniane są jedynie następujące znaki specjal­ ne: • & zamieniany jest na &; • ' zamieniany jest na &11039;,jeśli została ustawiona opcja ENT QUOTES; • " zamieniany jest na ", jeśli nie została ustawio­ na opcja ENT_NOQUOTES; • zamieniany jest na >. Funkcja implode(dostępna od PHP 3) Deklaracja: string implocle (string glue, array pieces) Przetwarza tablicę na ciąg znaków. Pomiędzy poszczególne elementy wstawiany jest ciąg zapisany w argumencie glue. Funkcja join(dostępna od PHP 3) Alias dla funkcji implode. Funkcja lcfirst(dostępna od PHP 5.3.0) Deklaracja: string lcfirst (string str) Zwraca ciąg str, w którym pierwszy znak został zamieniony na wielką literę(o ile ten znak był literą). Funkcja ltrim(dostępna od PHP 3) Deklaracja: string ltrim (string str (, string charlist]) Usuwa z początku ciągu str wszystkie znaki zawarte w opcjonalnym argumencie charlist. Jeżeli argument charlist nie występuje, usuwane są znaki: • spacja(SPACE)-kod ASCII Ox32, • tabulator(TAB)-kod ASCII Ox09, • nowa linia(LF)-kod ASCII OxOA, • powrót karetki(CR)-kod ASCII OxOD, • znak zerowy(NUL)-kod ASCII OxOO, • tabulator pionowy-kod ASCII OxOB. Funkcja md5_file(dostępna od PHP 4.2.0) Deklaracja: string md5 file (string filename [, bool raw output]) Oblicza funkcję skrótu dla pliku filename i zwraca ją(lub false w przypadku niepowodzenia) w postaci ciągu repre­ zentującego 32-znakową liczbę heksadecymalną. Opcjonalny parametr raw_output (domyślnie false) został dodany w PHP 5 i wymusza zwrócenie wartości w postaci niesforma­ towanej. Funkcja md5(dostępna od PHP 3) Deklaracja: string md5 (string str (, bool raw output]) Działanie analogiczne do md5 file, ale operuje na ciągu znaków str. - Funkcja nl2br(dostępna od PHP 3) Deklaracja: string nl2br (string str [, bool is xhtml = trueI) Dodaje przed każdym znakiem nowego wiersza sekwen­ cję
(
w wersjach PHP do 4.0.5). Od wersji 5.3.0 o postaci sekwencji decyduje opcjonalny argument is_xhtml.Gdy jest równy true(wartość domyślna), se­ kwencją jest
,a gdy jest równy false, sekwencją jest
. Funkcja number_format(dostępna od PHP 3) Deklaracja: string number format (float num­ ber [, int decimals [� string dec point, string thousands sep]I) - Zwraca sformatowany ciąg znaków, reprezentujący liczbę number.Możliwe zestawy argumentów: • Jeżeli jest jeden argument,wartość number zo­ staniezaokrąglonado wartościcałkowitej,a grupy Argument Znaczenie Znak rocentu. tysięczne będą oddzielane znakiem przecinka,np. number_forrnat(124124124.5) da w wyniku 124,124,125. • Jeżeli są dwa argumenty,pierwszy reprezentuje wartość liczbową,drugi-liczbę miejscdziesiętnych.Grupy tysięczne będą oddzielane znakiem przecinka,np. number_forrnat(l24124124.5, 2) da w wyni­ ku 124,124, 124.50. • Jeżeli są cztery argumenty,pierwszy reprezentuje wartość liczbową,drugi-liczbę miejsc dziesięt- nych,trzeci określa separator dziesiętny,a czwarty -separator grup tysięcznych,np. nurnber for­ mat(124l24l24 .5, 2, ',', '.')-da w wyni­ ku 124.124 .124,50. Funkcja ord(dostępna od PHP 3) Deklaracja: int ord(string str) Zwracakod ASCII pierwszegoznakuciągustr. Funkcja parse_str(dostępna od PHP 4) Deklaracja: void parse str (string str [, array &arr]) - Przetwarza ciąg strtak,jakby był ciągiem adresu URL znaj­ dującym się za znakiem ? (tzw. query string) i ustawia od­ czytane parametry jako zmienne w bieżącym zasięgu. Użycie tablicy jako drugiego argumentu spowoduje,że odczytane dane zostaną umieszczone w tej tablicy. Funkcja printf(dostępna od PHP 3) Deklaracja: void printf (string format [ , mixed args]) Działanieanalogicznedo sprintf,jednak wynikkierowany jest do standardowego wyjścia. Funkcja quoted_printable_decode(dostępna od PHP 3.0.6) Deklaracja: string quoted_printable_decode (string str) Dekoduje ciąg znaków zapisany w standardzie quoted­ printable. Funkcja quoted_printable_encode(dostępna od PHP 5.3.0) Deklaracja: string quoted printable encode( string str) - Koduje ciąg znaków zgodnie ze standardem quoted­ printable. Funkcja quotemeta(dostępna od PHP 3) Deklaracja: string quotemeta(string str) Dodaje znak backslash(\) przed każdym ze znaków: . \ + * ? ' $ [ l ( ). Funkcja rtrim(dostępna od PHP 3) Deklaracja: string rtrim(string str [, string charlist]) Usuwa z końca ciągu str wszystkie znaki zawarte w opcjo­ nalnym argumencie charlist. Jeżeli argument char- 1ist nie występuje,usuwane są tzw. białe znaki(uwzględ­ nione w opisie ltrim). Funkcja sha1_file(dostępna od PHP 4.3.0) Deklaracja: string shal file(string filename [, bool raw outputJl Oblicza, według algorytmu SHAl, funkcję skrótu dla pliku o nazwie filename i zwraca ją(lub false w przypadku niepowodzenia) w postaci ciągu znaków, reprezentującego 40-znakową liczbę heksadecymalną. Opcjonalny parametr raw_output(domyślnie false) został dodany w PHP 5 i wymusza zwrócenie wartości w postaci niesformatowanej. Funkcja sha1(dostępna od PHP 4.3.0) Deklaracja: string shal(string str [, bool raw output]) Działanie analogiczne do shal file, ale operuje na ciągu znaków str. - Funkcja sprintf(dostępna od PHP 3) Deklaracja: string sprintf Istring format (, mixed args]) Zwraca ciąg znaków sformatowany według argumentu for­ mat. Argument format może zawierać dowolne znaki oraz specyfikatory konwersji rozpoczynające się od znaku %, po którym umieszcza sięparametryw następującej kolejności: 1. Opcjonalne określenie znaku wartości(+ lub-). 2. Opcjonalne wypełnienie. Określa znak, jaki ma zostać użyty do wypełniania wolnego miejsca. Może to być spacja(domyślnie) lub o;jeśli wypełnieniem ma być inny znak,należy poprzedzić go znakiem '. 3. Argument opcjonalny,który określa wyrównywanie cią­ gu(domyślnie wyrównywanie do prawej). Znak - ozna­ cza przełączenie na wyrównywanie do lewej. 4. Argument opcjonalny, który określa minimalną długość ciągu wynikowego w znakach. 5. Argument opcjonalny,który określa precyzję,czyli licz­ bę miejsc dziesiętnych(dla liczb zmiennopozycyjnych). 6. Wymagany specyfikator typu,który określa sposób trak­ towania danych,może przyjmować wartości z poniższej tabeli. Argument będzie traktowanyjako liczba całkowita i prezentowany w formacie binarnym. Argument będzie traktowanyjako liczba całkowita i prezentowanyjako znak w standardzie ASCII. Argument będzie traktowanyjako liczba całkowita i prezentowanyjako liczba dziesiętna ze znakiem. Argument będzie traktowanyjako liczba w postaci wykładniczej. Użyta zostanie mała litera e. Argument będzie traktowanyjakoliczba w postaci wykładniczej. Użyta zostanie wielka litera E. Argumentbędzietraktowany iprezentowanyjakoliczba zmiennopozycyjna(zuwzględnieniem ustawień lokalnych). Argumentbędzietraktowanyiprezentowanyjakoliczbazmiennopozycyjna(bezuwzględnianiaustawieńlokalnych). Argument będzie traktowany jako liczba całkowita i prezentowany w formacie ósemkowym. Argument Znaczenie Argument będzie traktowany i prezentowanyjako ciągznaków. Argument będzie traktowanyjako liczba całkowita i prezentowanyjako liczbadziesiętnabez znaku. Argument będzietraktowanyjako liczba całkowita i prezentowany w formacie szesnastkowym. Użyte zostanąmałe literya- f. Argument będzie traktowany jako liczba całkowita i prezentowany w formacie szesnastkowym. Użyte zostanąwielkie litery A- F. Prezentacja liczby w różnych notacjach: echo sprintf("24 dziesiętnie to %d\n", 24); echo sprintf("24 binarnie to %b\nłl, 24); echo sprintf(1124 oktalnie to ruo\n", 24); echo sprintf("24 heksadecymalnie '-+-to %x\n", 24); Formatowanie liczb zmiennopozycyjnych: echo sprintf("Formatowanie domyślne "+%f\n", 1 .49); echo sprintf ("Owa miejsca po przecinku "-+-% .2f\n", 1.49); echo sprintf("Dwa miej sca po przecinku, "-+-wypełnienie zerami :COS.2f\n", 1 . 49); Wiele argumentów: echo sprintf("Data: 04d-<;..02d-%02d", '+2005, 2, 1); Funkcja sscanf(dostępna od PHP 4.0.1) Deklaracja: mixed sscanf Istring str, string format [, mixed & „.]) Odwrotność funkcji sprintf. Przetwarza ciąg znaków str zgodnie z formatem podanym w argumencie format. Ciąg formatujący budowany jest zgodnie z zasadami podanymi przy opisie funkcji sprintf. Funkcja str_ireplace(dotępna od PHP 5) Deklaracja: mixed str ireplace (mixed se­ arch, mixed repldce, mixed subject [, int &count]) Wykonuje to samo zadanie co str replace, ale nie uwzględnia wielkości liter. - Funkcja str_pad(dostępna od PHP 4.0.1) Deklaracja: string str pad(string input, int pacl_length [, string pad_string [, int pad type]J) Dopełnia ciąg znaków input do rozmiaru pad length znakami zapisanymi w pad_string (domyślnie spacje). Argument pad_type może przyjmować następujące war­ tości(domyślnie STR PAD RIGHT): • STR_PAD_RIGHT- - wypełnienie do prawej; • STR_PAD_LEFT-wypełnienie do lewej; • STR_PAD_BOTH-wypełnienie od prawej i do lewej. Funkcja str_repeat(dostępna od PHP 4) Deklaracja: string str repeat(string input, int multiplier) - Zwraca ciąg input powtórzony multiplier razy. Funkcja str_replace(dostępna od PHP 3.0.6) Deklaracja: mixed str replace(mixed search, mixed replace, mixed subject [, int &co­ unt]I Zwraca ciąg znaków lub tablicę,w której w ciągu subject każde wystąpienie ciągu search zostało zastąpione przez ciąg replace. Funkcja str_split(dostępna od PHP 5) Deklaracja:array str split(string str [, int split length] I - Przeksztalca ciągna tablicę podciągów. Liczba podciągów jest określana przez split length. Funkcja str_word_count(dostępna od PHP 4.3.0) Deklaracja: rnixed str warci count(string str [, int format [, string charlist]J) Oblicza liczbę słów w ciągu.Typ zwracanej wartości zależy od wartościdrugiegoargumentu(domyślnie jest on równy O): • O-zwrócona zostanie wartość typu integer; • 1-zwrócona zostanie tablica zawierająca wszystkie słowa z ciągu; • 2-zwrócona zostanie tablica asocjacyjna,w której kluczami będą pozycje poszczególnych słów w ciągu, a wartościami kluczy będą słowa. Dostępny od PHP 5.1.0 opcjonalny parametr charlist po­ zwala określić dodatkowe znaki,które mają być traktowane jak słowa. Funkcja strcasecmp(dostępna od PHP 3.0.2) Deklaracja: int strcasecmp (string strl, string str2) Porównuje dwa ciągi bez rozróżniania wielkości liter. Zwraca wartość mniejszą od zera,jeżeli strl < str2, wartość większą od zera,jeżeli strl > str2,lub zero,jeśli strl = str2. Funkcja strcmp(dostępna od PHP 3) Deklaracja: int strcmp (string strl, string str2) Działa analogicznie do strcasecrnp, ale uwzględnia wiel­ kości znaków. Funkcja strcoll(dostępna od PHP 4) Deklaracja: int strcoll (string strl, string str2) Porównuje ciągi strl i str2 z uwzględnieniem ustawień lokalnych(narodowych). Funkcja strcspn(dostępna od PHP 4) Deklaracja: int strcspn (string strl, string str2[, int start [, int length]]) Zwraca długość pierwszego segmentu ciągu str, który nie zawiera żadnego ze znaków występujących w str2. Opcjonalny argument start określa miejsce, w którym ma się rozpocząć przeszukiwanie,natomiast lenght-liczbę uwzględnianych znaków. Funkcja strip_tags(dostępna od PHP 3.0.8) Deklaracja: string strip tags (string str [, string allowable tags]l Usuwa z ciągu str znaezniki HTML i PHP oraz znaki NUL (okodzie O). Funkcja stripcslashes(dostępna od PHP 4) Deklaracja: string stripcslashes(string str) Usuwa znaki lewego ukośnika (backslash), odwrotność funkcji aclclcslashes. Sekwencje specjalne pozostawia nienaruszone. Funkcja stripos(dostępna od PHP 5) Deklaracja: int stripos(string haystack, string needle [, int offset]I Wersjafunkcji strpos, nieuwzględniająca wielkości znaków. Funkcja stristr(dostępna od PHP 3.0.6) Deklaracja: string stristr(string haystack, string needleI Wersja funkcji strstr nieuwzględniająca wielkich i małych liter. Funkcja strlen(dostępna od PHP 3) Deklaracja: int strlen (string str) Zwraca długość ciągu str. Funkcja strpos(dostępna od PHP 3) Deklaracja: int strpos (string haystack, string neeclle [, int offset]) Zwraca pozycję pierwszego wystąpienia ciągu needle w ciągu haystack. Funkcja strstr(dostępna od PHP 3) Deklaracja: string strstr(string haystack, string neeclle, bool before needle) Zwraca część ciągu haystack rozpoczynającą się od pierw­ szego wystąpienia ciągu needle i kończącą się w końcu ciągu haystack(rozróżnia małe i wielkie litery). Parametr before_needle (domyślnie równy false) został wpro­ wadzony w PHP 5.3.0. Jeśli zostanie ustawiony na true, funkcja zwróci część ciągu haystack znajdującą się przed podciągiem needle. Funkcja strtok(dostępna od PHP 3) Deklaracja: string strtok (string argl, string arg2I Dzieli ciąg argl na mniejsze ciągi (tokeny) względem zna­ ków zawartych w argumencie arg2. Funkcja strtolower(dostępna odPHP 3) Deklaracja: string strtolower (string str) Zamienia wszystkie znaki w ciągu str na małe litery. Funkcja strtoupper(dostępna od PHP 3) Deklaracja: string strtoupper (string str) Zamienia wszystkie znaki w ciągu str na wielkie litery. Funkcja substr_count(dostępna od PHP 4) Deklaracja: int int substr count(string hay­ stack, string needle [,- int offset = O [, int length]]) Zlicza wystąpienia ciągu needle w ciągu haystack. Opcjonalne argumenty offset i length (dostępne od PHP 5.1.0) pozwalają określić miejsce, od którego ma się za­ cząć przeszukiwanie, oraz liczbę przeszukiwanych znaków. Funkcja substr(dostępna od PHP 3) Deklaracja: string substr Istring str, int start [, int length] I Zwraca fragment ciągu str rozpoczynający się od znaku o indeksie start o długości length. Funkcja trim(dostępna od PHP 3) Deklaracja: string trim (string str (, string charlist]) Usuwa z początku i końca ciągu str wszystkie znaki zawarte w opcjonalnym argumencie charlist. Jeżeli argument charlist nie występuje, usuwane są tzw. białe znaki (uwzględnione w opisiefunkcji1trim). Funkcja ucfirst(dostępna od PHP 3) Deklaracja: string ucfirst(string str) Zwraca ciąg str rozpoczynający się wielką literą. Funkcja ucwords(dostępna od PHP 3.0.3) Deklaracja: string ucwords(string str) Zwraca przetworzony ciąg str, w którym każde słowo rozpo­ czyna się wielką literą. Funkcja wordwrap(dostępna od PHP 4.0.2) Deklaracja: string wordwrap (string str [, int width [, string break [, boolean cut]] l) Dzieli ciąg str tak,aby powstała kolumna o długości width (domyślnie 75 znaków). Parametr break wskazuje,jakie zna­ ki mają być dodawane nakońcu każdego wiersza. Jeżeli argu­ ment cut jest równy false(wartość domyślna),dzielenie odbywa się w taki sposób,aby zostały zachowane całe słowa. Typy złożone Typ tablicowy Tablice można tworzyć,używając wyrażenia array I) z od­ powiednimi argumentami lub klasycznej konstrukcji z nawia­ sami kwadratowymi. W pierwszym przypadku schemat jest następujący: $tab = array( ) ; "kluczl11 => 111.,..ar.cośćl", Tl k1 lJ C:::2 " => IT l·Jarto,r;ć2" I 11J:luczN" => 111vartoś.JN" W drugim: $tab["kluczl"] = "1-.rartqSćl"; $tab["k1ucz2"] = " 11artość2"; $tab["kluc::N11] => " ;1artość:J" ; Kluczami mogą być liczby całkowite(tablice indeksowane nu­ merycznie) lub ciągi znaków(tablice asocjacyjne)-oba typy traktowane są jednakowo.Można utworzyć pustą tablicę: $tab = array II ; , Przy tworzeniu tablicy dopuszcza się pomijanie wartości klu­ czy - powstanie wtedy tablica indeksowana numerycznie. Indeksy zostaną utworzone automatycznie(od O do N),np.: $tab = array(1, 8, 15); co jest równoważne zapisowi: $tab[] = l; $tab[]=8; $tab[J=l5; Dodawanie danych: $arr = array I); $arr[0] = l; $arr[l] = 2; $arr["pierwsza liczba"] = 5; $arr["druga liczba"] = "osiemnaście"; Modyfikowanie danych: $arr = array(l, 2, 3, 4, 5); $arr[4] = l; $arr[O] = 5;

Tab l ice informatyczne. PHP 5 Usuwanie danych: $arr = array ( l , 2 , 3 , 4, 5) ; I/usunięcie ostatniego elementu unset ( $:arr [ 4] ) ; 1 /usunięcie całej tabl icy unset ( $arr) ; Typ obiektowy Typ obiektowy został opisany w sekcji„Klasy i obiekty''. Typy specjalne Typ resource Wprowadzony w PHP 4 specjalny typ danych, przechowujący odniesieniedo zasobów zewnętrznych(ang. resource), takich jak: elementy systemu plików, połączenia z bazami danych. Zasoby i zmienne typu resource tworzy się za pomocą funkcji specjalnych. Operatory logiczne Operator Znaczenie Przykład Opis Typ null Typ null jest typem specjalnym, informującym, że dana zmienna nie przechowuje żadnej wartości. Jego użycie jest wzasadzie takie samo,jak w innychjęzykach programowania. Przypisanie zmiennej wartości null odbywa się następująco: $zmienna = nul l ; Wielkość liter nie ma znaczenia. Opęraiory Operatory arytmetyczne Operator Znaczenie dodawanie odejmowanie mnożenie dzielenie dzieleniemodulo Przykład $a + $b $a - $b Sa * $b Sa I $b Sa % $b and logiczneAND $a an $b Wynikiem jesttrue, jeśliobaoperandy mają wartość true. logiczne OR $a or $b Wynikiem jest true, jeśli przynajmniejjeden operand ma wartość t rue. logiczne XOR $a xor $b Wynikiem jest true, jeśli operandy mają przeciwne wartości logiczne. logiczna negacja ! $a Zmienia logiczną wartość na przeciwną. & & logiczne AND $a && Sb Wynikiem jest t rue, jeśli oba operandy mają wartość true. I I logiczne OR $a 1 1 $b Wynikiemjest true,jeśli przynajmniej jeden operand ma wartość t rue. Operatory bitowe Operator Znaczenie Przykład Opis iloczyn bitowy AND $a & $b Odpowiednibitbędzie ustawiony, jeśli oba bity składowe sąrówne 1 . suma bitowa OR $a I &b Odpowiedni bit będzieustawiony, jeśli przynajmniejjeden z bitów składowych jest równy 1. suma bitowa XOR $a Ą $b Odpowiedni bit będzie ustawiony, jeśli bity składowe są różne. negacja bitowa - $a Wszystkie bity otrzymują wartość przeciwną do bieżącej. przesunięcie w lewo $a « $b Przesuwa wszystkiebityzmiennej $a o $b kroków w lewo. przesunięcie w prawo $a » $b Przesuwa wszystkie bity zmiennej $a o $b kroków w prawo. Operatory porównywania Operator Znaczenie Przykład Opis równy $a �= $b Wynikiemjest true, jeśli $ a jestrówne $b. identyczny $a === $b Wynikiem jesttrue, jeśli $a jest równe $b i oba operandy są tego samego typu. ' = różny $a ! = $b Wynikiem jest true, jeśli $a jest różne od $b. różny $a <> $b Wynikiemjest true, jeśli $a jestróżneod $b. ' == nieidentyczny $a ! == $b Wynikiem jest true, jeśli $a jest różne od $b lub operandy nie są tego samego typu. mniejszy $a < $b Wynikiem jest true, jeśli $ajest mniejsze od $b. większy $a > $b Wynikiem jest true, jeśli $ajest większe od $b. mniejszy lub równy $a <= $b Wynikiem jest true, jeśli $a jest mniejsze lub równe $b. większy lub równy $a >= $b Wynikiem jest true, jeśli $a jest większe lub równe $b. Operator warunkowy Operator warunkowy ma postać: 1vy e.niel ? ...J:{}-ra �eni e2 1vyra ::eni e3 Konstrukcja ta oznacza:Jeżeli wartością wyrażenia 11yra że ­ ni e1(warunku) jesttrue, wynikiem jest wartość wyrażenia ivyra żeni e2, w przeciwnymprzypadkuwynikiem jest war­ tość wyrażenia Dla zwiększenia czytelności można dodać nawias w wyraże­ niu warunkowym: $11_Ynik = ( $max == 10 0 ) ? " równe " " różne " ; Operatory przypisania Operator ���f!!��ania Znaczenie $a = $b $a = $b $a += $b $a = $a + $b $a -= $b $a = $ a - $b $a *= $b $a = $a * $b I= $a /= $ b $a = $a I $b i!; = $ a %= $b $a � $a % $b &= $ a & = $b $a = $a & $b 1 � $a I = $b $a � $a I $b $a � $a Ą $b $a «• $b $a = $a << $b $a >>= $b $a = Sa >> $b $a . = $b $a = $a . $b Operator łańcuchowy Operatorem łańcuchowym jest . (kropka). Operator ten do­ konuje konkatenacji, czyli łączenia łańcuchów znakowych. Przykładowo wynikiem działania instrukcji:< ?php $ s trl = " To j es t " ; $ s tr2 = "pr zykładowy tekst . " ; $ s tr3 � $s trl . " " . $ str2 ; echo ( $ s t r3 ) ; ?>będzie wyświetlenie ciągu znaków: To je s t przykła­ dowy tekst. Operatory rzutowania typów Operator Znaczenie Operator łączenia tablic Operatorem łączenia tablicjestznak plus(+). Do tablicy znaj­ dującejsię po lewej stronieoperatorazostanie dodanazawar­ tość tablicy znajdującej się po prawej stronie. Jeżeli w obu tablicach znajdą się elementy o takich samych indeksach, pozostaną one w formie niezmienionej, tzn. będą miały takie samewartości, jakelementy z tablicyznajdującej się po lewej stronie. Przykładowo:< ?php $a � array ( 1 => 1, 2 => 2 , 3 => 3 ) ; $b = array ( 3 => " tr z y " , 4 => " c:.:te ry " , '+ 5 � > "p ięć " ) ; $c = $a + $b; var dump ( $c ) ; ? > - Operatory inkrementacji i dekrementacji Operator inkrementacji ma postać + + i powoduje zwiększe­ nie wartości zmiennej o jeden. Występuje on w dwóch for­ mach: przyrostkowej i przedrostkowej. Forma przedrostkowa (++$zmienna) powoduje zwiększenie wartości zmiennej przed jej wykorzystaniem, natomiast forma przyrostkowa ($ zmienna++) - po jej wykorzystaniu. Operator dekre­ mentacji ma postać --, a jego działanie powodujezmniejsza­ nie wartości zmiennej o jeden. Operator kontroli błędów Operatorkontroli błędów oznaczany jest znakiem @. Jeżelizo­ stanie postawiony przez wyrażeniem, to gdyby wygenerowa­ ło ono błąd, zostanie on zignorowany i żaden komunikat nie pojawi się na ekranie. Gdy jest włączona opcja t rack_er­ rors, komunikat o błędzie będzie zapisany w zmiennej glo­ balnej $php errormsg. Należy pamiętać, że zmienna ta jest nadpisywanaprzy każdym wystąpieniu kolejnego błędu. - Operator wykonania polecenia zewnętrznego Polecenie zewnętrzne jest wykonywane przez ujęcie go w znaki lewego apostrofu · · , np. · ls -l a · . Wynik wyko­ nania polecenia zewnętrznego staje się rezultatem działania operatora, np. $lista = · is -1a · ; . (boolean) lub (boo l ) konwersjadotypu boolean ( integer) lub ( in t ) konwersjadotypu całkowitoliczbowego ( doub l e ) lub ( float ) , lub ( re a l ) konwersjadotypu zmiennoprzecinkowego ( s t ri ng ) konwersja do typu łańcuchowego ( ar ray) konwersja do typu tablicowego ( obj ect ) konwersja do typu obiektowego ( u n s e t ) konwersjadotypu NULL(w PHP 5 lub nowszych) Operator kontroli typów Operatorem kontroli typów jest instanceof. Zwraca t rue, jeżeli dany obiekt jest instancją pewnej klasy, np.: i f ( $obj instanceof Abc ) echo ' $obj j e s t '-+instancją klasy Abc 1 ; Operator tworzenia obiektów Do tworzenia obiektów służy operator new. Schematyczne wywołanie operatora new wygląda następująco: $obiekt = new nazo·1a klasy ( argumen ty "-+kons truktora ) ; - Priorytety opera!orów Lp. Rodzaje operatorów Klonowanie i tworzenie obiektów Indeks tablicy lnkrementacja, dekrementacja Negacja bitowa, zmiana znaku wartości, konwersje typów, kontrola błędów Kontrola typów Negacja logiczna Mnożenie, dzielenie, resztaz dzielenia Dodawanie, odejmowanie, łączenie łańcuchów znakowych Przesunięcia bitowe 10 r u e�a r 2!��riejsze, większe,mniejsze lub równe, większe 11 Relacje(równe, identyczne, różne, nieidentyczne) 12 Iloczyn bitowy 13 Bitowa różnica symetryczna 14 Suma bitowa 1S Iloczyn logiczny 16 Suma logiczna 17 Warunkowy 18 Operatory przypisania 19 Iloczyn logiczny 20 Logiczna różnica symetryczna 21 Suma logiczna 22 Rozdzielanie wyrażeń Lista słów kluczowych Operator klonowania obiektów Do klonowania obiektów, czylitworzenia wiernej kopii obiek­ tuzachowującej występujące w nim referencje,sluży operator clone. Typowe wywołanie ma postać: $zmienna = clone $obiekt ; Operator rozdzielania wyrażeń Operator , (przecinek) pozwala na oddzielenie od siebie wy­ rażeń. Najczęściejużywany jest w pętli typu for, np.: fo� (i � O , j � 1 0 0 ; i < 1 0 0 , j 4i++, j --) { / * instrukc j e wrn; trza pętli ' I Symbole clone, new [ ] ++, -- -, +, -, { int) , ( f l oat) , ( s t ri ng ) , ( array) , ( obj ect ) , @ ins tanceof *, /, % +, -, .<<, >><, >, <=, >= == , ===, ! =, I == & & l i ? : =, +=, -= , • =, / =, . =, %=, &=, "'=, I =, <<=, >>= and Wiązanie bezwiązania lewe bezwiązania prawe bez wiązania prawe lewe lewe lewe bez wiązania bez wiązania lewe lewe lewe lewe lewe lewe prawe lewe lewe lewe lewe Słowa oznaczone symbolem • są zarezerwowane od PHP 5.3, natomiast oznaczone symbolem ** są zarezerwowane tylko w PHP 4, a w nowszych wersjach można je stosować. ab s t ract con s t endif and cont inue endswitch array ( ) declare endwhile defau lt extends break do final else for catch elseif foreach cfunct ion enddeclare funct1on c l a s s endfo r global c l one endforeach go to Z�jenne Tworzenie i typy zmiennych Zmienne rozpoczynają się od znaku $, po którym następuje nazwa zmiennej. Nazwa ta może zaczynać się od litery lub znaku podkreślenia, po których może nastąpić dowolna kombinacja liter, cyfr i znaków podkreślenia. Prawidłowe są zatem nazwy: $ zmienna $ zmienna 1 $_12 3 - $ 1 zmienna Przypisaniewartościdozmiennej odbywa sięza pomocąope­ ratora =. Można zatem napisać: $ l i czba = 1 2 4 ; $napis = 11 t e ks t 11 ; Typ zmiennej jest przypisywanyautomatycznie,w momencie nadania jej wartości. Zatem w pierwszym przypadku powsta­ ła zmienna typu całkowitoliczbowego, a w drugim-zmien­ na typu s t ring. Ponowne przypisanie wartości do zmiennej zmienia jej typ: $zmienna = 1 2 4 ' 7 / z111ienna typu inte-ger $ :mienna = " tekst " ; / / zmiana typu '-na s t ring $ zmienna = 1 . 2 4; / / zmiana typu na float Rzutowanie i konwersja typów Rzutowanie typów odbywa się za pomocą operatorów rzu­ towania. Zmienną należy poprzedzić nazwą typu, na który dokonywane jest rzutowanie, ujętą w nawias okrągły.< ?phE $napi s = " 1 5 0 . 3 4 t o j e s t napi s " ; echo 1 1 y p s t ring : $napi s \ n " ; Nazwa funkcji Opis i f publ ic implements s t a t i c ins tanceof swi tch inte r face throw name s pace try a l d funct ion while private p rotect ed $ l i czba = ( double ) $nap i s ; echo " typ double : $ l iczba \n " ; $l i czba = ( int eger ) $napi s ; echo ( " typ integer : $ l i czba \n '1 ) ; $liczba � (intege r) (doub le!) $napis ; echo "po dwukrotnym rzutowaniu : $liczba\n11 ; ?>Zmiany typu zmiennej można dokonać również przy użyciu jednej z funkcji konwertujących: • intval - konwersja na typ integer, • doub leval(lub floatval)-konwersja na typ double, • st rva l - konwersja na typ s tring. Typ zmiennej może być ustalony za pomocą funkcji settype: bool settype (mixed var, s t ring typ ) Argument t yp może przyjmować jedną z następujących wartości: • "boolean" lub "boo l "-dla typu boolowskiego, • " integer" lub " int"-dla typu całkowitoliczbo­ wego, • " float " lub "double "-dla typu zmiennoprzecin- kowego(zaleca się używanie float), • " s t ring "-dlatypułańcuchowego, • "array" -dla typu tablicowego, • "obj ect " -dla typu obiektowego, • "null "-dlatypU NULL. Kontrola typów PHP udostępniazestawfunkcjiumożliwiających stwierdzenie, jakiego typu jest zmienna. get type ( ) Zwraca ciąg znaków, określający typ zmiennej, lub unknown, gdy typ jest nieokreślony. is_int ( ) Zwraca wartość true, jeżeli argument jest liczbą całkowitą, lub false w przeciwnym przypadku. is i n teger ( ) Zwraca wartość t rue, jeżeli argument jest liczbą całkowitą, lub fals e w przeciwnym przypadku. is_long( ) Zwraca wartość true, jeżeli argument jest liczbą całkowitą, lub fals e w przeciwnym przypadku. i s_double ( ) Zwraca wartość t rue, jeżeli argument jest liczbą rzeczywistą, lub fals e w przeciwnym przypadku. is float ( ) Zwraca wartość true, jeżeli argument jest liczbą rzeczywistą, lub fa1 se w przeciwnymprzypadku. i s_rea l I ) Zwraca wartośćtrue, jeżeli argument jest liczbą rzeczywistą, lub false w przeciwnym przypadku. is bool ( ) Zwraca wartość t rue, jeżeli argument jest zmienną logiczną, lub false w przeciwnym przypadku. i s_array ( ) Zwraca wartość true, jeżeli argument jest tablicą, lub fal se w przeciwnym przypadku. i s_s tring ( ) Zwraca wartość t rue, jeżeli argument jest ciągiem znaków, lub fals e w przeciwnym przypadku. is_objec t ( ) Zwraca wartość true, jeżeli argument jest obiektem, lub fals e w przeciwnym przypadku.

Tablice informatyczne. P H P 5 St�łe Do utworzenia stałej może być użyta funkcja de fine lub (od PHP 5.3.0) słowo kluczowe const. Schemat użycia define: de fine ( "N.l'1::;rvA_STJłŁEJ" , wartość) ; np.: define ( " PI " , 3 . 1 4 1 5 9 2 65 ) ; define ( 11KOMUNIK.A.T 11 , "To j est treść "-+-komunikatu " ) ; Schemat użycia con st: const !'lii.ZWA_ :3T.f!ŁEJ = r·1ar tość; np.: const PI = 3 . 1 4 1 5 9 2 65 ; const KOMUNIKAT = "T.o j est treść "-+kcmunikatu " ; Ten sposób definiowania stałych może być użyty tylko w za­ sięgu ogólnym (na najwyższym poziomie, poza funkcjami i klasami). Raz ustalonej wartości stałej nie można zmieniać, wolno jąjedynie odczytywać. Instrukcje warunkowe Instrukcja if„.else Klasyczna instrukcja i f . . . e l s e ma postać: i f ) el se I i n s trukcje:! ) Jeżeli i;arunek jest prawdziwy, zostaną wykonane i n ­ s trukcj el, w przeciwnym razie-i n s trukcj e2. Blok e l s e jest opcjonalny. Instrukcja if„.else if Instrukcja złożona i f . . . e l s e i f ma postać: i f ) / /dalsze bloki else .if else { i n s t rukcjc-.V ) Jeżeli 11aru nek jest prawdziwy, zostaną wykonane i n ­ s trukcj el, w przeciwnym razie, jeśli prawdziwy jest 1'arunek2, zostaną wykonane ins trukcje2 itd. Jeżeli żaden z warunków nie jest prawdziwy, zostanie wykonany blok e 1s e, jest on jednak opcjonalny. Instrukcja switch Instrukcja warunkowa switch może zastąpić serię instruk­ cji i f . . . el se i f: switch ( ivyra :ćiani e ) ( ) case ivart oSCl : i nstrukcj el ,· break; case 1·1a r c 0Sć.:? : i ns trukcj e2 ; break; I /dals 2e bloki case Jeżeli 11yra żenie ma wartość 11artośćl, wykonywane są i ns t rukcjel; jeśli wartością wyrażenia jest 11ar­ toś ć2, wykonywane są i n s t rukcj e2 itd.Jeżelinie uda się dopasować wartości wyrażenia do wartości występują­ cych po klauzulach c as e, wykonywane są instrukcje wystę­ pujące po siewie de fault. Pętle Pętlawhile Pętla typu while ma postać: while ( 1varunek) { i n s trukcje ; ) Co oznacza: dopóki warunek jest prawdziwy, wykonuj instrukcje. Przykład: $ count � 5 ; whi le ( $ count-- > 0 ) I echo ( $ count) ; Pętlado.„while Pętla do . . . while jest odmianąpętliwhile o postaci: do { ins trukcj e ; ) while ( 1.;arunek) / Co oznacza: wykonuj instrukcje, dopóki warunek jest praw­ dziwy. Przykład: $count = 4 ; do { echo ($ count ) ; I wh.ile ( $count-- > O l Pętlafor Postać for ma postać: for ( 1q.ra żeni el ; h'y:r:a :: en i e2 ; 1·:yra 2eni e3) { / / instrukcj e Wyrażenie 11yra żeni el inicjuje wartość zmiennej iteracyj­ nej (kontrolującej przebiegi pętli). wyra żeni e2 to waru­ nek zakończenia pętli. 11yrażen i e3 modyfikuje zmienną iteracyjną: for ( $ count � 4; $count >= O ; $ count-- ) { echo ( " $ count " ) ; Pętlaforeach Pętla foreach jest użyteczna, gdy istnieje konieczność dostępu do kolejnych elementów tablicy lub(począwszy od PHP 5) składowych obiektu. Występuje w dwóch postaciach: foreach( $tablica as $.11a.rtość) { i n s t..rukcje; oraz foreach ( $ tablica as $ klucz �> $ wa r t ość) { i n s t1-ukcje ; I W pierwszym przypadku nie ma dostępu do aktualnej warto­ ści klucza, w drugim dostęp jest: => 1 dwa ' , , trzy ' => 3 , ' I /Lu nie ma dostępu do foreoch ( $tab as $v) { echo ( " $v
\n " ) ; ) klucza I/tu j est do s tęp do warto ści klucza fo reach ( $ tab as $key => $v) I echo { " tab l $ key) � $v
\n " ) ; ) ?>Instrukcje break i continue Instrukcja break służy do przerwania danej iteracji pętli for, foreach, while lub do„.whi l e bądź też bloku switch. Jej ogólna postać to: break [N) ; gdzie Nto opcjonalny argument, który w przypadku instruk­ cji zagnieżdżonych wskazuje, ile poziomów zagnieżdżenia ma być przerwane. Instrukcja continue powoduje przejście do kolejnej iteracji pętli lub instrukcji swi tch (co jest równoznaczne z opuszczeniem tej instrukcji). Schemat użycia con t i nue: continue [N] ; Argument N jest opcjonalny i w pętlach zagnieżdżonych określa, w której pętli ma być kontynuowana iteracja. Instrukcja goto Instrukcja go to(dostępna odPHP 5.3.0) powodujeprzeskok w programie do miejsca oznaczonego etykietą wskazaną w wywołaniu g oto. Schemat użycia: goto e tyki .c tia ; Etykieta powinna być wskazana przez nazwę zakończoną znakiem dwukropka, np.: etykieta : Można przeskakiwać wyłącznie do miejsca skryptu znajdują­ cego się w tym samym zasięgu(kontekście) wbieżącympliku, niemożna wykonać przeskoku do funkcji, metody czy pętli. Składnia alternatywna Zarówno dla pętli for, foreach, wh i le, jak i dla instruk­ cji warunkowych i f, i f . . . el s e, swi tch istnieje skład­ nia alternatywna. Ma ona ogólną postać: endins t.rukcj a ; Instrukcjewarunkowe Blok instrukcji warunkowych i f . . . el se i f w postaci: if ( $ a < $b i I ecłio ( " $a j est mniej s ze od $b " ) ; I else if ( $ a > $b) I echo ( " $a j est i·Jię ks ze od $b " ) ; ) po zapisaniu przy użyciu składni alternatywnej będzie miał postać: if ( $ a < $bi : echo ( " $a j es t mniej s ze od .$b" ) ; elseif > $bi : endi f ; Pętle j est większe od · b " ) ; Pętla wh i le w postaci: while { $a < $b) I print ( " $ a" ) ; $a + = 1 ; ) po zapisaniu przy użyciu składni alternatywnej będzie miała postać: Pętla for w postaci: for { $count � 4 ; $count >= O ; ęcount- - 1 { echo ( 11 $count 11 ) ; I po zapisaniu przy użyciu składni alternatywnej będzie miała postać for ( $ count � 4 ; $count >= O; $count- - ) : echo ( 11 $ count " ) ; endfor; Z ;funk_cj!'! Deklaracje Funkcje definiowane są za pomocą słowa kluczowego function, po którym następuje nazwa funkcji oraz lista argumentów ujętych w nawias okrągły.Schematycznie: funct ion funkcja ( a r..g.I , 'J.rg:? , . . . , argN) { ins trukcj e ; I Nazwa funkcji może zawierać dowolną kombinację liter, cyfr i znaków podkreślenia -nie może się jednak zaczynać od cyfry.W ciele(we wnętrzu) funkcji można zawrzeć dowolny, poprawny składniowo kod PHP, włącznie z definicjami innych funkcji i klas.Wywołanie funkcji polega na podaniu jej nazwy zakończonej nawiasem okrągłym; jeśli mają być przekazane argumenty,należy je umieścić w tym nawiasie: na zi.1a_funkaji ( argumen ty) ; np.:Za pomocą instrukcji return funkcja może(ale nie musi) zwracać wynik dowolnego typu, np.:Argumenty funkcji Funkcja może mieć dowolną liczbę argumentów, oddzie­ lonych od siebie znakiem przecinka. Argumenty mogą być przekazywane: • przez wartość, • przez referencję, Domyślnie przekazywanie odbywa się przez wartość. Przekazywanie przezwartość W ciele funkcji jest dostęp tylko do kopii przekazywanych danychi ich ewentualna modyfikacjanie ma wpływu na stan zmiennych poza funkcją.Przekazywanie przez referencję Aby przekazać argument przez referencję(i mieć możliwość modyfikacji wewnątrz funkcji oryginalnych danych), należy poprzedzić go znakiem & (ampersand), czyli: function furrkcja ( & argumen t ) { I / treść '+funkcj i ) ; Przykładowo:Domyślne wartości argumentów Argumenty domyślne definiowane są następująco: function na :-iva ( $ a .rgumen t = t·1a r l o.ść) { I / t resć funkcj i Wartość domyślna musi być wyrażeniem stałym(ang. con­ stant expression), niemoże więcto byćnp. zmienna.Należy równieżpamiętać,żetrzeba podaćwszystkiedomyślneargu­ menty z prawej strony listy argumentów przed wszystkimi argumentamizwykłymi. function show ( $ argl , $arg2 = " s tr2 " / '-'"$arg3 � " str3 " I I echo ( $arg l . " " . $arg2 . " " . $aJ.·g3 ) Zmienna lista argumentów Do obsługi zmiennej listy argumentów wykorzystywane sątrzy funkcje: • func num args-zwraca liczbę argumentów funkcji; - • func_ge t_arg-zwraca argument o podanym numerze; • func get args-zwraca listę argumentów w postacita6licy. Wykorzystanie func_num_args i func_get_arg:< ?php funct ion func{) { I $val = n n ; $ count = func_ num args ( ) ; for ( $i � O ; $ i < $count; $i++) I $ va'I. . = func_get_a rg ($i l; I return $ va l ; $ s t r = fu11c ( 11 To " , " j est " echo $str ; ?>Wykorzystanie func_get_args:Zasięg zmiennych Zmienne globalne Zmienna globalna,czyli zadeklarowana w skrypcie poza cia­ łem funkcji lub klasy, jest dostępna bezpośrednio w każdym miejscu skryptu poza wnętrzami funkcji. Aby w funkcji uzy­ skać dostęp do zmiennych o zasięgu globalnym, należy użyć słowa kluczowego g lobal: global $::mienna l , $zmi.erma.:', ... , $zmi ennaN; np.:< ?php $liczba = 1 0 0 ; function func { ) I I global $lic zba; echo $ l i c=ba ; func ( ) ; ? >Drugą możliwością jest skorzystanie z tablicy $GLOBALS, która zawiera odwołania do wszystkich zmiennych global­ nych skryptu: $GLOBALS [ ' na21·1a zmi enn j ' ] np.: -Zmienne lokalne Zasięg zmiennych lokalnych jest ograniczony wyłącznie do wnętrza funkcji, w której zostały zdefiniowane. Odwołania w innym miejscu skryptu nie są możliwe. Zmienne statyczne Zmienne statyczne funkcji zachowują swoją wartość pomię­ dzy jej wywołaniami.W deklaracji używa się słowa stat i e: s tatic $ młz1va zmi en n ej = h'a .rtość; Pierwsze wywołanie fU";ikcji tworzy zmienną statyczną i przy­ pisuje jej pierwotną wartość.Wartość może być modyfikowa­ na. Pomiędzy wywołaniami pamiętana jest ostatnia wartość zmiennej, np.:) public public function show ( ) I $this->imi e " ) ; $ this->nazwi s ko" ) ; Należy zwrócić uwagę na sposób odwołania do pól klasy w metodzie s how. Koniecznejestużycie wskazania $ t h i s, które informuje, że są to odwołania do zmiennych zdefinio­ wanych w klasie, a nie do zmiennych o takich samych na­ zwach zdefiniowanych wfunkcji show. Specyfikatory dostępu Składowe klasy muszą mieć określony sposób dostępu, który definiuje się przy użyciu specyfikatorów dostępu nazy­ wanych również modyfikatorami dostępu(ang. access modifiers). Sąto: • pub l i c - dostęp publiczny(dostępjest nieograni­ czony, można się do nich dowolnie odwoływać); • protected-dostępchroniony(dostęp jest ograniczony do klasy, w której sązdefiniowane, oraz do klas bazowych i pochodnych); • private -dostęp prywatny(dostęp jest ograniczo- ny tylko do klasy, w której są zdefiniowane). Modyfikator musi wystąpić przed nazwą pola, nie musi nato­ miast przed nazwą metody(jest ona wtedy traktowana tak, jakbyznajdowało sięprzednią słowopublic). Tworzenie obiektów Obiekt danej klasy tworzony jest za pomocą operatora new w postaci: $ zm.i enna = new na .:: 1va_kla :;;:y ( ) ; $osoba � new Osoba I I ; Odwołania do składowych Aby odwołać się do dowolnej składowej klasy, należy użyć operatora ->. Dla pól: $naz1va obi ekt u->{Ją �r·:a p.;Jl -..,; Dla metod: - - $ n a!n1a �bie:: t u- > ;1 a :::·:a me:r..::Jdy ( ar:gumt:!n - '+ty metody) ; - Przykład-;­< ?php class Osoba ) pub l i c $ imie; publ ic $nazwis ko ; funct ibn show ( ) I $osoba l � new Osoba ( I ; $ osobal ->imie = "Andrzej " ; $osoba l->nazwisko = 11 Is h0\·I ( I ; ?>Dziedziczenie cl-ass Punkt I ) public $wsp„ ; public $wąp- Y ; cl ass KolorowyPunkt exte cis public $kall.or ; Konstruktory i destruktory Definicja konstruktora polega na umieszczeniu wkodziekla- sy metody o nazwie cons truct, schematycznie class na z 11a_k1.asy I function construct ( ) I/t reść konstruktora ) I/po zostałe s kładO\;e kla�y - - - - - - - - - - - - - - - - - Ciąg dalszy na stronie5 -ł

Tablice informatyczne. P H P 5 Konstruktor jest wykonywany zawsze podczas tworzenia obiektów danej klasy. Należy zwrócić uwagę, że w przypadku dziedziczenia kon­ struktor klasy bazowej nie jest wywoływany automatycznie. Jeśli zachodzi potrzeba, aby został on wykonany,należy go wywołać za pomocą konstrukcji: parent : construct ( ) np.:X ( ) ; $zmB->X I ) ; ? >Składowe statyczne Składowe statyczne istniejąnawetwtedy,kiedynie ma żadnego obiektu danej klasy i są współdzielone przez wszystkie obiekty danej klasy. Do deklaracji używa się słowa static. Dla pól: specyfi ka t.or_dostępu static $ naz1·1a_aola ; Dla metod: specyfikato r do=bępu sta tie function 4-naZh'.J metody(5!.,Kgume t r) ; Dostęp do składowych statycznych uzyskuje się następująco: nazwa klasy : : nazwa pola na z1va-kla sy : : naz11a-m0 tody ( ar9umenty ) Przykład uŻycia: -< ?php class Test I ) public s tatic $ liczba ; public s tat ic function f I ) I echo ' funk.ej a f ' ; Test : : $l i c zba = 100; echo Test : : $l i czba , " \ n" ; Test: : f () ; ? >Wyjątki Zgłaszanie wyjątków Do zgłaszania wyjątków służy instrukcja throw, po której należy umieścić obiekt wyjątku, schematycznie: throw 1vj:.j a tek; Obiekt wyjątku powinien być typu (klasy) Exception lub dowolnego typu pochodnego od Exception, np.: thrm-1 new Exception ( ) ; lub: $e = new Exception ( ) ; throw $e; Konstruktor klasy Exception ma następującą deklarację: public construct ( [ s tring message = " " (, "+int code = O ( , Exception previous = ""'NOLL] L J ) Dostępne są następujące metody: • getMessage-zwraca komunikat powiązany z danym wyjątkiem (dostępna od PHP 5.1.0); • getPrevious-zwraca obiekt poprzedniego wyjątku (dostępna od PHP 5.3.0); • getCode-zwraca kod powiązany z danym wyjąt­ kiem(dostępna od PHP 5.1.0); • getFile-zwraca nazwę w pliku, w którym wystąpił dany wyjątek (dostępna od PHP 5.1.0); • getLine-zwraca numer linii kodu, w której wystąpił dany wyjątek (dostępna od PHP 5.1.0); • getTrace -zwraca tablicę z informacjami o wyjątku i miejscu jego wystąpienia(tzw. stack trace; dostępna od PHP 5.1.0); • get TraceAs string -zwraca informacje o wyjątku i miejscujego wystąpienia(tzw. stack trace) w postaci ciągu znaków (dostępna od PHP 5.1.0). Przechwytywanie wyjątków Wyjątki przechwytuje się za pomocą instrukcji t ry„.catch: try { //instrukcje mogące spm·10dować '+wyj ątek ) catch ( typfvyj ą tku ob i ektf'lyj ą t ku ) { I I kod obs ługi blędu Liczba bloków catch niejest ograniczona. RÓŻNE WŁAŚCIWOŚCI ' Zmienne superglobalne Zmienna $GLOBALS $ SERVER $__GET $ POST $ COOKIE $_FI LES $_ENV $ REQOEST $ SESS ION $php_errormsg $HTTP RAW POST DATA $http_response_header $ argc $argv Znaczenie Tablica zawierająca odniesienia do zmiennych o zasięgu globalnym. Kluczami są nazwy, a wartościami kluczy-wartościzmiennych. Tablica zawierająca informacje ustawiane przez serwerWWW. Tablica zdanymiprzekazanymi do serwera WWW za pomocąmetodyGET. Tablica z danymi przekazanymi do serwera WWW za pomocąmetody POST. Tablicazawierająca cookies przekazane z serwera WWW. Tablica zawierająca elementy przekazane do skryptu za pomocą metody POST podczas przesyłania plików do serwera. Tablicazawierająca wartości zmiennych środowiskowych przekazanych z systemu, na którym działa PHP. Tablica asocjacyjna zawierająca dane z $ GET,$ POST i $ COOKIE. Tablica asocjacyjna z danymizwiązanymi z bieżącąsesją. Zmienna zawierająca tekst poprzedniego komunikatu o błędzie. Dostępna tylko wtedy, gdy w plikukonfiguracyjnymphp.iniopcja t rac k er rors zostałaustawiona na On(włączona). Zmienna zawierająca nieprzetworzone dane przesłane do skryptu za pomocąmetody POST. Tablica zawierająca nagłówki protokołu HTIP przesłane przez serwer w odpowiedzi na otrzymane żądanie(odwołanie). Zawiera liczbę argumentów przekazanych do interpretera PHP, gdy skrypt jest wywoływany z wiersza poleceń. Pierwszym argumentemjest nazwa pliku zawierającego skrypt. Zmienna jest dostępna, jeśli w pliku konfiguracyjnym php.ini została włączona opcja regi s ter_ Tablica argumentów przekazanych do interpretera PHP,gdy skryptzostał wywołany z wiersza poleceń. Pierwszym elementem tablicy ($argv [ o ] ) jest nazwa pliku ze skryptem. Zmienna jest dostępna, jeśli w pliku konfiguracyjnym php.ini została włączona opcja register_ Przetwarzanie fo_r_"!lula�zy Metoda POST Metoda GET W przypadku metody GET dane z formularza przekazywane są jawnie,w adresie URL, który ma wtedy postać: http : / / adre s . s e rwe ra I s k ryp t . php? zmie n n a l =war­ tośćl & zmienna2=wartość2. Dane będą dostępne dla skryptu w globalnej tablicy $ GET. Kluczami tej tablicy są nazwy elementów formularza,a wartościami wskazywanymi przez klucze - odpowiadające im dane. Przykład odczytu tablicy $_GET:< ?php foreach ( $ GET as $ key => $val) { print ( "$key : $val
" ) ; } ? >Informacje przesyłane do serwera nie są widoczne dla użyt­ kownika, można też przesłać w ten sposób większą ich ilość. Dane będą dostępne dla skryptu w globalnej tablicy $ POST. Kluczami tej tablicy są nazwy elementów formularza; a wartościami wskazywanymi przezklucze- odpowiadające im dane. Przykład odczytu tablicy $_POST: $val) I print ( "$key : $val
" ) ; ? >Odczyt pliku Do otwarcia pliku służy funkcja fopen, do zamknięcia- fclose, a do odczytu danych-fread. Funkcja fread odczytuje dane z pliku wskazywanego przez jej pierwszy argument (deskryptorzwrócony przez fopen): string fread {resource handle, int length) Odczytywana jest liczba bajtów wskazywana przez pa­ rametr length, chyba że podczas odczytu zostanie osiągnięty koniec pliku. W takim przypadku czytanie jest przerywane i zwracana jest zawartość odczytana do tego miejsca. Zawartość pliku jest zwracana w postaci zmiennej typu string, czyli w postaci łańcucha znaków.Funkcja feof zwraca wartość true,jeśli został osiągnięty koniec pliku lub wystąpił błąd,natomiast wartość false -w każdym innym przypadku. Aby odczytać naraz całą za­ wartość pliku (zamiastpętli while), można użyć instrukcji: $ s tr = fread ( $ fd, filesize '+ { $ fi lename ) ) ; lub funkcji file_ge t_contents: $ str = file get contents ( "naz\·Ja pli- '+ku") ; - - - Funkcja f i l e s i ze zwraca rozmiar pliku w bajtach. Zapis pliku Zapis do pliku odbywa się za pomocą funkcji fwri te (lub jej aliasu fputs). Deklaracjajest następująca: int fwrite ( re source handle, string '+str [ , int length } ) Argument h andle jest to identyfikator pliku zwrócony przez fopen, s t r to dane, które mają zostać zapisane. Parametr length jest opcjonalny i określa, ile bajtów ma zostać zapisanych. Jeżeli nie zostanie podany, zapisane zostaną wszystkie dane zawarte w s tr. Przy zapisywaniu plików należy zwrócić szczególną uwagę na tryb otwarcia, użyty w funkcji fopen. W szczególności należy pamiętać, żetryb w+ usuwa wszystkie dane w otwieranym pliku, nato­ miast tryb r+ powoduje zapis na początku pliku,ale nadpi­ sujeznajdujące się tam dane.Argumenty funkcji fopen Deklaracja: resource fopen ( s tring file- name , s tring made [ , bool use include path [ , resource context ] ] I - W zależności od tego, w jakiej postaci zostanie podany argument fi lename, zostanie otwarte połączenie HTIP, FTP, jeden ze standardowych strumieni lub plik w systemie plików serwera. 1. Jeśli fi lename zaczyna się od ciągu s chema : I /, PHP zakłada,że schema oznacza jeden z zarejestro­ wanych protokołów (np. HTIP, FTP itp.) i poszukuje odpowiedniej procedury obsługi.Jeżelitaka procedura nie zostanie odnaleziona (podane zostało odwołanie Znacznik Opis Wskaźnik am lub pm A Wskaźnik AM lub PM Czas internetowy w formacie Swatch Data w formacie IS0-8601 (dostępny od PHP 5) do nieobsługiwanego protokołu),wygenerowana zo­ stanie nota informacyjna(ang. notice), a skrypt będzie kontynuował działanie tak, jakby fi 1 en ame wskazy­ wał plik lokalny. 2. Jeśli filename wskazuje plik lokalny(lub PHP założy, że tak jest),otwierany jest strumień powiązany z tym plikiem. Należy się upewnić, że prawa dostępu są usta­ wione tak,iżpozwalają aparatowi wykonawczemu PHP na odwołanie się do pliku. 3. Jeśli fi lename zaczyna się od php : I Is tdin, php : / / s tdout lub php : / / s tderr, zostanie otworzony odpowiedni strumień. 4. Jeżeli fi lename wskazuje jeden z protokołów sie­ ciowych, PHP sprawdza najpierw, czy jest włączona opcja konfiguracyjna a l low url fopen. Jeśli nie jest, generowane jest ostrzeżenie, awywołanie fopen kończy się niepowodzeniem. Jeżeli otwarcie wskazanego pliku lub adresu URL się nie powiedzie, zostanie zwrócona wartość fal s e. Parametr mode może przyjmowaćjedną z następujących wartości: • ' r ' -otwarcie tylko do odczytu, wskaźnik pliku zostanie ustawiony na jego początku. • ' r+ ' -otwarcie do odczytu izapisu, wskaźnik pliku zostanie ustawiony na jego początku. • ' w ' -otwarcie tylko do zapisu,wskaźnik pliku jest ustawiony na jego początku,długość pliku jest obcina­ na do zera. Jeśli plik nie istnieje, następuje próbajego utworzenia. • ' w+ ' -otwarcie do zapisu i odczytu, wskaźnik pliku jest ustawiony na jego początku,długość plikujest obcinana do zera. Jeśli plik nie istnieje,następuje próbajego utworzenia. • ' a ' -otwarcietylko do zapisu,wskaźnik pliku jest ustawiony na jego końcu. Jeśli plik nie istnieje, następuje próba jego utworzenia. • ' a+ ' -otwarcie do zapisu i odczytu,wskaźnik pliku jest ustawiony najego końcu. Jeśli plik nie istnieje, następuje próba jego utworzenia. • ' x ' -utworzenie i otwarcie pliku tylko do zapisu, wskaźnik pliku jest ustawiony najego początku. Jeśli plik istnieje,zwracana jest wartość fa1 s e i genero­ wane jest ostrzeżenie. • ' x+ ' -utworzenie i otwarcie pliku do odczytu izapisu, wskaźnik pliku jest ustawiony najego począt­ ku. Jeśli plik istnieje, zwracana jest wartość fa 1s e i generowane jest ostrzeżenie. • c-otwiera plik w trybie tylko do zapisu. Jeżeli plik nie istnieje,zostanieutworzony,jeśliistnieje,wskaźnik po­ zycjizostanie umieszczony na początku-zawartość pliku niejest tracona. Opcja dostępna od PHP 5.2.6. • c+-otwiera plik w trybie do zapisu i odczytu.Jeżeli plik nie istnieje, zostanie utworzony,jeśli istnieje, wskaźnik pozycji zostanie umieszczony na początku -zawartość pliku niejest tracona. Opcja dostępna od PHP 5.2.6. Parametr tryb możerównieżzawierać opcjonalnąliteręb, np.: rb, r+b.Wskazujeona,żeplikma byćotwarty wtrybie binarnym, a nie tekstowym, i jest użyteczny w systemach, które dokonują takiego rozróżnienia (np. Windows). Jeśli system nie dokonuje takiego rozróżnienia,parametr b zo­ stanie zignorowany. Począwszy od PHP 4.3.2, tryb binarny jest trybem domyślnym. Przełączenie w tryb tekstowy od­ bywa się przezużycielitery t, np.: wt, w+t. Dat� i cz�s Poniżej przedstawiono wybrane funkcje operujące na dacie i czasie. Funkcja checkdate(dostępna od PHP 3) Deklaracja: bool checkdate ( in t month , int day , int yea r ) Zwraca true, jeżeli podane jako parametry wartości two­ rzą poprawną datę dla kalendarza gregoriańskiego.W prze­ ciwnym przypadku zwraca wartość false. Funkcja date (dostępna od PHP 3) Deklaracja: s tring date ( string format [ , int t imes tamp ] ) Zwraca ciąg znaków, sformatowany zgodnie z szablonem podanym jako parametr format. Jeżeli zostanie podany parametr t i mestamp, zostanie zwrócona odpowiadająca mu data. Jeżeli parametr ten zostanie pominięty, będzie zastosowany bieżący czas lokalny. Szablon format może zawierać znaczniki formatujące: Przykładowe wartości am, pm AM,PM od OOO do 999 2009-03-16T17:29:51+00:00 d Dzień miesiąca w formacie dwucyfrowym z zerem na początku od 01 do 31 M Dzień miesiąca w formie skrótu trzyliterowego Identyfikator strefy czasowej (dostępny od PHP 5.1.0) Pełna nazwa miesiąca Godzina w formacie 12-godzinnymbezzera na początku Godzina w formacie 24-godzinnym bez zera na początku Godzina w formacie 12-godzinnym z zerem na początku Godzina w formacie 24-godzinnymz zerem na początku Minuty z zerem na początku Znacznik czasu zimowego (1) i letniego (O) Dzień miesiąca bez zera na początku Dzień miesiąca w postacitekstowej Znacznik roku przestępnego Miesiąc w postaci dwucyfrowej z zerem na początku Miesiąc w postaci trzyliterowej Miesiąc w postaci liczbowej bez zera na początku Numer dnia w tygodniu, zgodny z formatem IS0-8601 (dostępny od PHP 5.1.0) Rok zgodny z IS0-8601(dostępny od PHP 5.1.0) od„Mon"do„Sun" GMT,UTC od„January"do„December" od 1 do12 od O do 23 od 01 do 12 od OO do 23 od OO do 59 O lub 1 od 1 do31 od„Monday''do„Sunday' 1 oznacza rokprzestępny od Ol do12 od„Jan"do„Dec" od 1 do 12 od 1(ponledziałek) do 7 (niedziela) 1998, 2010 Różnica w stosunku do czasu Greenwich „+0200' Data formatowana zgodnie ze standardem opisanym w rfc2822 ,Wed,21 Dec 201O 18:21:17 +0200" Liczba sekundz zerem na początku od OO do 59

Tablice informatyczne. PHP 5 Znacznik Opis Przykładowe wartości Przyrostek literowy dla liaby określającej dzień tygodnia (dla języka angielskiego) "st", "nd", "rd" lub "th" Liaba dni w danym miesiącu Skrót określający strefę aasową Liaba milisekund(dostępny od PHP 5.2.2) Znaanik aasu Uniksa Dzień tygodnia w postaci numerycznej od 28 do 31 EST.MOT 46892 liaba sekund, która upłynęła od 1 styania 1970 00:00:00 GMT od O(niedziela) do 6(sobota) w Numer tygodnia w roku zgodnie ze standardem IS0-8601 (dostępny od PHP 4.1.0) od1 do 52 Rok w postaci dwucyfrowej np. 98, 10 Rok w postaci aterocyfrowej np. 1998, 201O Numer kolejnego dnia w roku, numeracja od O od O do365 Przesunięcie strefy aasowej w sekundach od -43200 do 50400 Funkcja getdate(dostępna od PHP 3) Deklaracja: array getdate ( [ int timestamp } ) Zwraca tablicę zawierającą dane określające bieżącą datę i aas lub też, kiedy podany zostanie parametr t imes tamp -datę i aas, określone przez ten parametr. Zwrócona tablica zawiera następujące kluae: Klucz seconds minutes hours mday wday year yday weekday month Znaczenie Liaba sekund Liabaminut Godzina Dzień miesiąca Dzień tygodnia w postaci numeryanej, O oznaaa niedzielę Miesiąc w postaci liabowej Rok w postaci liabowej(aterocyfrowej) Numer kolejnego dnia w roku Dzień tygodnia w postacitekstowej Nazwa miesiąca w postacitekstowej Znacznik aasu Uniksa Funkcja gettimeofday(dostępna od PHP 3.0.7) Deklaracja: mixed gettimeofday ( [bool turn float } ) Zwracatablicę zawierającą dane dotyaące bieżącego aasu. Kluaamitablicy są: Klucz Znaczenie Sekundy Mikrosekundy minuteswest Minuty na zachód od Greenwich dsttime Rodzaj aasu(letni lub zimowy) Jeżeli opcjonalny parametr return float (dostępny od PHP 5.1.0) zostanie ustawiony na true (domyślnie jest równy false), zamiast tablicy zwrócona zostanie wartość typu float. Funkcja gmdate(dostępna od PHP 3) Deklaracja: s tring gmdate ( s tring format [ , int timestamp } ) Zwraca ciąg znaków sformatowany zgodnie z szablonem podanym jako argument format. Jeżeli zostanie podany argument times tamp, zostanie zwrócona odpowiadająca mudata.Jeśli parametrten zostaniepominięty,zostanie użyty aasbieżący. Zawsze zwracany jest aas w formacie GMT (ang. Greenwich Mean Time). Szablon format może zawierać znaaniki formatujące podane w opisie funkcji date. Funkcja gmmktime(dostępna od PHP 3) Deklaracja: int gmmktime ( [ int hour [ , int minute [ , int second [ , int month [ , int day [, int year [, int i s ds t } J JJJ ] ] ) Działanie jest identyczne jak funkcji ,;;it ime, z tą różnicą, żeparametry reprezentują czas GMT. Funkcja gmstrftime(dostępna od PHP 3.0.12) Deklaracja: string gms tr ft ime ( s tri ng format [ , int times tamp ] ) Dzialanie jest analogianie do strftime, z tą różnicą, że zwracany jest aas GMT. Funkcja idate(dostępna od PHP 5) Deklaracja: int idate ( s tring format [ , int timestamp J ) Zwraca wartość typu integer, określającą datę lub aas, sformatowaną zgodnie z parametrem format. Parametrten może przyjmować jedną z wartości: B, d, h, H, i, I, L, m, s, t, u, w, w, y, Y, z, z. Ich znaaenie jest zgodne z tym podanym przy opisie funkcji dat e. Funkcja localtime(dostępna od PHP 4) Deklaracja: array loca l time ( [ int t ime s tamp [ , bool is as soc i a tive ] ] ) Zwraca tablicę z zawartością identyaną jak struktura zwra­ cana po wywołaniu funkcji localtime w C. Pierwszym argumentem jest znaanik aasu time s tamp. Jeżeli nie zo­ stanie on podany, będzie uwzględniony bieżący aas lokalny. Ustawienie argumentu is associative na false łub niepodanie go powoduje zwrócenie zwykłej tablicy indekso· wanej łiabowo. Po ustawieniu argumentu is_associa- Znacznik Opis % a Nazwa dniatygodnia wpostaci skróconej %A Pełna nazwa dniatygodnia %b Nazwa miesiąca wpostaci skróconej %B Pełna nazwa miesiąca Przykładowe wartości od O do 5 9 od o do 5 9 od o do 23 od 1 do 31 od o(niedziela) do 6(sobota) od 1 do 12 1995, 2015 od o do 3 65 Sunday,Monday January, February zazwyczajod -2 1 474 83648 do 214 7 483647 tive na t rue zwracana jest tablica asocjacyjna o następu­ jących kluczach: Klucz Znaczenie tm sec Liaba sekund tm min Liabaminut tm_hour Godzina tm_mday Dzień miesiąca w postaci liabowej tm mon Miesiąc w roku w postaci liabowej tm year Liaba lat, które upłynęły od roku 1900 tm wday Dzień tygodnia tm yday Dzieńroku tm_isdst Znaanik aasu letniego i zimowego Funkcja microtime(dostępna od PHP 3) DeklaraCJa:mixed microt1me ( [bool get a s float } ) Zwraca uniksowy znacznik aasu, podając liabę sekund i mi­ krosekund, które upłynęły od 1 stycznia 1970 roku od godziny 0:00:00 aasu Greenwich. Jeżeli opcjonalny parametr get as float (dostępny od PHP 5) zostanie pominięty luli będzie miał wartość fals e, zwracany ciąg będzie miał po­ stać msec s ec, gdzie msec oznaaa mikrosekundy, a sec -sekundy. Jeżeli ten argument będzie miał wartość true, zostanie zwrócona wartość typu float. Funkcja działa tylko na platformach obsługujących wywołanie funkcji systemowej gettimeofday. Funkcja mktime(dostępna od PHP 3) Deklaracja: int mktime ( [ int hour [ , int minu­ te [ , int second [, int month [ , int day [, int year [ , int i s ds t } ] } } ] } } ) Zwraca uniksowy znaanik aasu - dla podanych argumentów. Część parametrów(bądż wszystkie) można pominąć, pod wa­ runkiem żeodbywasięto odprawejdolewej strony.Brakujące danezostanązastąpionezgodniezbieżącym aasemlokalnym. Parametropcjonalny is dst (odPHP 5.1.0ma on status de­ precated) przyjmujewartość 1 dla aasu zimowego, o dla aasuletniego łub - 1, jeżeli typ aasu nie jest znany. Argument ye ar może być podawany w postaci dwu- łub aterocyfrowej. W pierwszym przypadku wartości od O do 69 są przekładane na lata 2000 - 2069, natomiast wartości 70 - 99 na lata 1970 - 1999. Ostatni dzień miesiąca może być wyrażony jako zerowy dzień następnego. Funkcja strftime(dostępna od PHP 3) Deklaracja: s tring s tr ftime ( s tring format [ , int times tamp } ) Zwraca ciąg znaków, sformatowany zgodnie z szablonem podanym w argumencie format. Jeżeli zostanie podany argument times tamp, zostanie zwrócony odpowiadający mu aas. Jeśli parametr ten będzie pominięty, zostanie uży­ ty bieżący aas lokalny. Nazwy miesięcy oraz dni tygodnia, a także inne parametry związane z ustawieniami lokalnymi będą zgodne z danymi lokalizacyjnymi ustawionymi funkcją s etlocale. W szablonie formatującym można używać znaaników przedstawionych w poniższej tabeli. % c Data i aas w formaciezgodnym z ustawieniami lokalnymi % C Wiek(rokpodzielonyprzez sto i obciętydo liaby całkowitej, zakres od OO do 99) %d Dzieńmiesiąca wpostaci numeryanej, zakres od Ol do 31 %D Znaaenie identyane jak %m/ %dl%y % e Dzieńmiesiąca wpostaci numeryanej, liabyjednocyfrowepoprzedzane sąspacją % F Znaaenie identyane z % Y-%m-%d %g Znaaenie takiejak %G, bez uwzględnienia wieku % G Czterocyfrowy rok(z uwzględnieniem numeru tygodnia wg standardu ISO) Znacznik Opis %11 Znaaenie takie samojak %b %H Godzina w formacie 24-godzinnym U Godzina w formacie 12-godzinnym %j Dzień w roku, zakres od 001 do 366 Godzina w formacie dwunastogodzinnym ze spacjąpoprzedzającąpojedyncze cyfry %m Miesiąc wpostaci numeryanej %M Liczbaminut % n Znaanik nowej linii %p Znaanikprzedpołudniem-popołudniu(wielkimi literami) % P Znaanikprzedpołudniem-popołudniu(małymi literami) % r %R %5 %T Znaaenie identyane z % I : %M : % 5 %p Znaaenie identyane z %H : %M Liaba sekund w formacie dwucyfrowym Znaktabulac"i Bieżący aas, odpowiednik %H : %M : %5 %u Numer dnia tygodnia, 1 oznaaaponiedziałek, 7-niedzielę w Numertygodnia w roku, poaynając odpierwszej niedzieli jakopierwszego dniapierwszego tygodnia %V Numertygodnia w roku zgodnie ze standardemISOB601:1998 Dzień tygodnia, o oznaaa niedzielę, 6-sobotę %W Numertygodnia w roku,poaynając od pierwszegoponiedziałku jakopierwszego dniapierwszego tygodnia %x Reprezentacja daty(bez aasu), zgodna z bieżącymi ustawieniami lokalnymi %X Reprezentacja aasu(bez daty), zgodna z bieżącymi ustawieniami lokalnymi %y Rok wpostaci dwucyfrowej(bez oznaaenia wieku) %Y Rok wpostaci aterocyfrowej(z oznaaeniem wieku) % z Przesunięcie dla bieżącej strefy aasowej lub skrót nazwy strefy aasowej(zależnieo dsystemu operacyjnego, na którym działa PHP) % Z Określenie strefyaasowejniezwracaneprzez znacznik %z % % Znak% Funkcja strtotime(dostępna od PHP 3.0.12) Deklaracja: int strtotime ( s tring $ t ime [ , int $now ] ) Dokonuje konwersji ciągu znaków opisującego datę i czas na uniksowy znacznik aasu. Parametr t ime powinien zawierać datę w jednym z angielskich formatów zgodnych ze składnią GNU. Poprawne są m.in. przykładowe wywołania: s trtotime ( " now " ) r " \n " ; strtotime ( " lO September 201 4 11 ) , " \n " ; s trtotime ( " + l day" ) , " \n " ; strto time ( " + l week " ) , " \n" ; strtotime ( " + l wee k :. days 4 hours 42 seconds " ) , " \n" ; strtotime ( "next Thursday" ) , " \n " ; s trtotime ( " last Mond@:_y" ) , " \n " ; Jeśli nie można dokonać konwersji, funkcja zwraca wartość fa lse(w wersjach poniżej 5.1.0 zwracana jest wartość - 1). Funkcja time(dostępna od PHP 3) Deklaracja: int t ime ( void) Zwraca uniksowy znaanik czasu. Odbieranie i wysyłanie plików Odebranie pliku wysłanego do serwera Plik po odebraniu przez serwer jest zapisywany pod tymaa­ sową nazwą w katalogu zdefiniowanym w opcjachkonfigura· cyjnych. Dane dotyaące jego nazwy, wielkości itp. znajdują się w globalnej tablicy $_FILES (plik identyfikowany jest przez nazwę pola input typu file z formularza WWW). Istnieje dostęp do następujących informacji: • $ FI LES [ ' na zwa pola ' ] [ ' name ' } --=-oryginalna nazwa Pliku, • $ FI LES [ ' nazwa pol a ' J [ ' type ' J -=-typMIME(np. image/jpeg), • $ FILES [ ' nazwa pola ' } [ ' s i ze ' } ....:-wielkość pliku w bajtach, • $ FILES [ ' nazwa pol a ' J [ ' tmp name ' J --=-tymaasowa nazwapliku, - • $ FILES [ ' na zwa pol a ' ] [ ' error ' ] --=-kod błędu(status operacji). Do przeniesienia odebranegoplikuz katalogu tymaasowego do docelowej lokalizacji należy użyć funkcji o nazwie move uploaded_file. Pierwszym jej argumentem jest nazwa pliku źródłowego(ayli nazwa tymaasowa pliku), drugim- nazwa pliku docelowego. Funkcja ta zwraca wartość true, jeżeli operacja zakończyła się sukcesem, lub wartość false w przeciwnym przypadku. $uploaddir = ' /upload/ ' ; if (move_uploaded_f ile ( $_FI LES [ ' pli k ' J 4 { ' tmp name ' 1 , $uploaddir . $ FILES ( ' plik ' J ( ' name ' J ) ) I echo ( " Plik :Ostał załadowany . " ) ; ) else ( echo ( " Plik nie �os tał za l u doh'any 11 ) ; Wysłanie pliku z serwera do przeglądarki Procedura postępowania jestnastępująca: 1. Otwarcie żądanego pliku za pomocądostępnych funkcji. 2. Odayt i zapamiętanie jego rozmiaru oraz zawartości. 3. Zamknięcie pliku. 4. Wysłanie do przeglądarki trzech nagłówków HTTP: heade.r ( "Con tent-Type : application/ 1..+octet-stream" ) ; header ( "Content-Length : rozmiar �� 0 a 1 di��u/,.'�;ntent-Disposi tion : - 4at.tachment ; filename=nazwa E1j.ku " ) ; 5. Wysłanie do przeglądarki zapamiętane]zawartości pliku. Przykład:Sesje Identyfikator sesji Każda sesja użytkownika ma przypisany własny, unikatowy identyfikator. Jest to losowa liaba generowana przez PHP, przechowywana na serwerze i w komputerze użytkownika. W tym drugim przypadku najczęściej w cookies. Jeżeli jed­ nak przeglądarka użytkownika nie akceptuje cookies lub jeśli autor witryny nie żyay sobie przechowywania identyfikatora w plikach tegotypu, identyfikator może być dodawany do ad­ resu URL (jeśli w opcjach konfiguracyjnych została włąaona opcja us e_trans_id). Rozpoczynanie sesji Sesja może być rozpoaęta przez wywołanie funkcji ses­ si on_start, np.: sess ion start ( ) ; Kiedy sesja wykorzystujecookies,ta funkcja musi być wywoła­ na, zanim jakiekolwiek dane zostaną wysłane do przeglądarki (chyba że włączonezostało buforowanie wyjścia). Sesja może być rozpoczynana automatyanie podczas wywo­ ływania każdego skryptu, o ile w pliku php.ini zmienna konfi· guracyjna s e ssion . auto start została ustawiona na 1 (wartością domyślną jest o). - Kończenie sesji W celu zakońaenia sesji należy wywołać funkcję session des troy. Usuwa ona zasoby powiązane z sesją, nie usuwa jednak zarejestrowanych zmiennych ani cookie zapisanego na komputerze użytkownika. Te czynności należy wykonać we własnym zakresie. Zmienne sesji Tworzenie zmiennych Zmienne sesji są zapisywane w globalnej tablicy o nazwie $_SESSION. Aby zapisać(zarejestrować) zmienną w sesji, należy skorzystać z konstrukcji: $ SESSION [ • nazi..ra zmi enn,;.j ' ] = ivartosC; Aby�daytać wartość zmi�nnej,trzebaodwołaćsię doindek· su wskazującegojej nazwę: $ zmienna = $ SESSION [ ' nazwa zmiennej ' ] ; Gdy trzeba sprawdzić,ay istnieje dana zm;nnasesji,stosuje się typową funkcję i ss et w postaci: i sset ( $_SESSION [ ' na =i;a_ =mi enn� ) ) Jeśli zwróconą wartością będzie true, oznaaa to, że zmien­ na jestzarejestrowana,a jeśli false-że nie jest. Usuwanie zmiennych Zmienne, które zostały zarejestrowane w sesji, trzeba przed jej zakońaeniem wyrejestrować. Należy skorzystać z funkcji unset w schematyanej postaci: unset ( $_SESSION [ ' na .:1.;a_ zm.i enne i...'..J ) Nastąpiwtedy wyrejestrowanie zsesjioraz usunięciezmiennej. Konfiguracja sesji Na zachowanie sesji można wpływać, modyfikując wartości opcji znajdujących się w pliku konfiguracyjnym php.ini. Opcjeteznajdują się w sekcji [ S e s sion] i mająnazwy zbu­ dowane według schematu: session . na Zh'd opcji. Przy każdej z nich znajduje się też opis działania. - 6 3 7 8 3 6