Sieci komputerowe i bazy danych
Wykład nr 5
PHP
Wprowadzenie
Informacje podstawowe
" Twórca: Razmus Lerdorf
" oficjalna nazwa PHP: Hypertext Preprocessor ,
" język skryptowy osadzany w dokumentach HTML
" działa po stronie serwera w trakcie konfiguracji
wymaga się dołączenia do oprogramowania serwera
modułów obsługujących PHP
" służy do tworzenia dynamicznych stron WWW
Zalety PHP
PHP jest dostępne bezpłatnie (pliki wykonywalne oraz
kod zródłowy),
PHP działa w systemie Unix, Windows 9x, Windows
NT oraz Macintosh,
PHP doskonale integruje się z serwerem WWW
Apache jak i z serwerem Microsoft-u Internet
Information Server (IIS),
PHP zaprojektowano w języku C, co daje możliwość
przyszłego rozszerzania jego możliwości
funkcjonalnych,
PHP jest technologią popularną,
Wady PHP
PHP jest językiem interpretowanym, skrypty nie są wykonywane
tak szybko jak programy kompilowane
PHP nie udostępnia wskazników. Autorzy nie uważają braku
wskazników za wadę, lecz jako zaletę PHP
PHP nie dysponuje możliwościami wykorzystania standardu
CORBA. Jeśli byłyby one dostępne, to PHP dysponowałoby
możliwością pobierania danych z istniejących systemów klient-
serwer.
HTTP jest protokołem bezstanowym, a skrypty CGI i PHP są
ulotne serwer wykonuje je, zamyka i zapomina, co działo się
przed chwilą. Wprowadza to konieczność wykorzystania
unikalnych identyfikatorów.
System transakcyjny. Nawet jeśli system bazy danych obsługuje
transakcje, to nie są one przydatne, kiedy nie wszystkie
aktualizowane dane znajdują się na serwerze bazy danych.
Porównanie z innymi rozwiązaniami
PHP a skrypty CGI
skrypty CGI produkują dane wyjściowe w postaci HTML,
skrypty PHP są osadzone w dokumencie HTML,
PHP a JavaScript
polecenia języka JavaScript są interpretowane po stronie
klienta,
polecenia języka PHP są interpretowane po stronie
serwera,
w przypadku JavaScript przeglądarka (interfejs
użytkownika) musi umieć interpretować JavaScript,
w przypadku PHP serwer musi umieć interpretować
PHP,
Podstawowe cechy
Możliwości PHP
obsługa formularzy,
generowanie dynamicznej zawartości na stronach,
odbiór / nadawanie cookies,
wsparcie dla różnorodnych baz danych: mySQL,
PostgreSQL, Sybase, Oracle, dBase, ODBC,...
możliwość współpracy z innymi protokołami sieciowymi:
IMAP, POP3, SNMP, NNTP, HTTP,
możliwość operowania na surowych gniazdach sieciowych,
Wersje PHP
PHP4 (PHP 4.0.4), PHP5.2.6
implementacje na różne platformy,
www.php.net
Przykładowy skrypt
STRONA SERWERA STRONA PRZEGLDARKI
Przykład Przykład echo "Hej, to jest skrypt PHP!"; Hej, to jest skrypt PHP!
print("
A to też PHP"); A to też PHP
?>
Wstawianie skryptów PHP
Aby plik był rozpoznany przez serwer WWW jako
skrypt PHP musi on mieć odpowiednie rozszerzenie.
Rozszerzenia te można zdefiniować w konfiguracji
serwera WWW, ale zazwyczaj jest to .php3 (dla PHP
w wersji 3), .php lub php4 (dla PHP w wersji 4) i .phtml
(dla PHP w wersji starszej niż 3).
Po nadaniu plikowi takiego rozszerzenia serwer
będzie wiedział, że plik ten nie jest przeznaczony do
bezpośredniego wyświetlenia (jak w przypadku plików
HTML), ale że najpierw trzeba go przepuścić przez
parser PHP.
Wstawianie skryptów PHP
echo ("to jest najprostsza metoda, podobna do
SGML'u\n"); ?>;
;
<% echo ("Możesz też użyć metody podobnej do tej z ASP");
%>
<%= ; # To jest skrót dla "<%echo .." %>;
Zakańczanie instrukcji
Jedną z głównych zasad języka PHP jest umieszczenie na końcu
każdej instrukcji (nie koniecznie linii) znaku średnika (';').
Można go pominąć tylko jeśli w danym miejscu następuje
przejście do trybu HTML
echo "To jest test";
?>
echo "To jest test" ?>
Komentarze
echo "To jest test komentarzy"; // Ta metoda znana jest
//z języków C/C++
echo "A to drugi test"; # A ta z powłok Uniksowych
?>
echo "Test komentarzy"; /* Tu jest początek komentarza
tu dalej trwa
a tu się kończy */
?>
Zmienne
Zmienna jest to identyfikator znakowy, któremu
przypisano jakąś wartość.
W języku PHP zmienne oznacza się za pomocą znaku
dolara ('$') przed wspomnianym identyfikatorem.
Obsługa zmiennych w PHP jest uproszczona do
minimum.
Zmienna jest inicjalizowana (to znaczy rezerwowany
jest dla niej pewien obszar w pamięci) przy pierwszym
jej użyciu.
Zmienne
Nazwy zmiennych muszą zaczynać się od litery
(dużej lub małej) lub "underscore" (dolna kreska
- '_')
Dalej mogą się składać z dowolnej ilości liter,
cyfr i znaków o kodzie ASCII powyżej 127.
Przy nazwach zmiennych respektowana jest
wielkość znaków - zmienne $Test i $test to
dwie różne zmienne.
Zmienne
$nazwa = 1; // Zmiennej "nazwa" przypisywana jest wartość liczbowa 1
$druga_nazwa = "Tekst"; // Zmiennej "druga_nazwa" przypisany jest ciąg znaków
"Tekst"
$trzecia_nazwa = $nazwa; // Zmiennej "trzecia_nazwa" przypisywana
//jest wartość zmiennej "nazwa"
echo "To jest $druga_nazwa"; // Powinien wyświetlić się napis "To jest Tekst"
echo '$druga_nazwa'; // Powinien wyświetlić się napis "$druga_nazwa"
echo $nazwa; // Powinna wyświetlić się cyfra 1
?>
Typy zmienych
W PHP zmienne mają następujące typy:
liczby całkowite (integer)
liczby rzeczywiste (double)
ciągi (string)
tablice (array)
PHP potrafi konwertować zmienne całkowite
obiekty (object)
zapisane w różnych formatach liczbowych:
$a = 1234; # liczba dziesiętna
$a = -123; # liczba ujemna
$a = 0123; # liczba ósemkowa (równoznaczne
z dziesiętnym 83)
$a = 0x12; # liczba szesnastkowa
(równoznaczne z dziesiętnym 18)
?>
Zmiana typu
Zazwyczaj nie jest konieczne określenie typu zmiennej - PHP sam to ustala,
zależnie od kontekstu. Przykład:
$blah = "0"; // $blah jest ciągiem (ASCII 48)
$blah++; // $blah jest ciągiem "1" (ASCII 49)
$blah += 1; // $blah jest teraz wartością całkowitą (2)
$blah += 1.3; // $blah jest wartością rzeczywistą (3.3)
$blah = 5 + "10 Malutkich swinek"; // jest wartością całkowitą (15)
$blah = 5 + "10 Małych swiń"; // jest wartością całkowitą (15)
?>
Rzutowanie typów
Dozwolone typy rzutowań:
(int), (integer) - t. całkowity
(real), (double), (float) - t. rzeczywisty
(string) - rzutuj do ciągu
(array) - rzutuj do tablicy
(object) - rzutuj do obiektu
$liczba_calkowita = 10;
$liczba_rzeczywista = (real) $liczba_calkowita;
?>
Rzutowanie typów
Użycie funkcji settype.
Funkcja ta pobiera 2 argumenty. Pierwszym jest nazwa zmiennej do
ustalenia typu, a drugim ciąg określający nowy typ zmiennej. Te typy
to:
"integer"
"double"
"string"
"array"
"object"
$a = 10.3;
echo "$a
"; // Wyświetlona wartość to "10.3"
settype($a, "integer");
echo "$a
"; // Wyświetlona wartość to "10"
?>
Predefiniowane zmienne
Zmienne ustawiane przez serwer WWW
np. SERVER_NAME - Nazwa hosta serwera na którym skrypt jest
uruchamiany. Jeśli skrypt pracuje na wirtualnym hoście, to zmienna
przyjmie jako wartość nazwę wirtualnego hosta.
Zmienne ustawiane przez PHP
argv - Tablica argumentów przkazywanych do skryptu. Jeśli skrypt jest uruchamiany z linii
poleceń, to zmienna ta daję dostęp do argumentów w stylu języka C. Jeśli jest wywołany przez
metodę GET, to zmienna ta zawierać będzie ciąg parametrów (query string).
PHP_SELF - Nazwa pliku aktualnie wykonywanego skryptu, względna do katalogu głównego
dokumentów. Ta zmienna jest niedostępna heśli PHP jest uruchamiany z linii poleceń.
HTTP_GET_VARS - Tablica asocjacjna zmiennych przekazanych do skryptu przez metodę
GET. Dostępna tylko jeśli włączone zostało śledzenie zmiennych przez ustawienie w
konfiguracji PHP opcji track_vars lub komendą .
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ą .
Stałe
W PHP występują także tzw. stałe, czyli identyfikatory znakowe,
których wartości nie można zmienić. Stałych, w odróżnieniu od
zmiennych, używa się bez znaku dolara na początku.
__FILE__ - Nazwa pliku ze skryptem który jest aktualnie przetwarzany. Jeśli stała ta użyta jest
wewnątrz pliku który został zainkludowany (o poleceniu include w dalszej części kursu), to podana
zostanie nazwa pliku zainkludowanego, a nie pliku nadrzędnego.
__LINE__ - Numer linii w skrypcie która aktualnie jest przetwarzana. Jeśli stała ta użyta jest wewnątrz
pliku który został zainkludowany, to podany zostanie numer linii przetwarzanej w pliku
zainkludowanym.
PHP_VERSION - Ciąg reprezentujący wersję parsera PHP aktualnie używaną.
PHP_OS - Nazwa systemu operacyjnego na którym uruchamiany jest parser PHP.
TRUE - Logiczna wartość prawdy.
FALSE - Logiczna wartość fałszu.
Operatory
Najprościej mówiąc są to symbole, które służą do operacji na
zmiennych. Operatory dzielą się na:
operatory arytmetyczne, które służą do operacji na liczbach,
operatory przypisania służące do przypisywania zmiennym
wartości,
operatory operacji bitowych,
operatory porównania niezbędne do instrukcji warunkowych,
operator kontroli błędów,
operator wykonania służący do uruchamiania zewnętrznych
programów,
operatory inkrementacji i dekrementacji,
operatory logiczne,
operatory ciągu.
Operatory arytmetyczne
Operator przypisania
$nazwa = $inna_nazwa = $trzecia_nazwa = 5;
?>
Operatory operacji bitowych
Operatrory operacji bitowych pozwalają na przestawianie
pojedyńczych bitów zmiennych.
Operatory porównania
Operator kontroli błędów
Operator kontroli błędów ('@') powoduje, że wyrażenie przed
którym postawiono ten znak nie spowoduje wyświetlenia się
jakiegokolwiek błędu lub ostrzeżenia.
/* Jeden z najczęstszych błędów SQL (za dużo o jeden apostrof) */
$res = @mysql_query ("select nazwa, kod from 'lista") or
die ("Zapytanie się nie powiodło: błąd to ''");
?>
Operator wywołania
Operator ten służy do uruchamiania zewnętrznych programów
lub poleceń powłoki.
$wynik = `ls -l /home/`;
echo $wynik;
?>
Po uruchomieniu tego skryptu wyświetlona zostanie zawartość katalogu /home
na serwerze.
Operatory inkrementacji i
dekrementacji
Służą one do zmniejszenia lub zwiększenia wartości danej
zmiennej o 1.
Operatory logiczne
Operatory logiczne służą do budowania bardziej skomplikowanych
instrukcji warunkowych - do łączenia kilku warunków w jednej
instrukcji.
Operator ciągu
Operator ciągu ('.' - kropka) służy do łączenia kilku ciągów w jedną
całość.
$zmienna1 = "Wartość zmiennej \"zmienna2\" to";
$zmienna2 = 5;
echo $zmienna1." ".$zmienna2; // Powinno się wyświetlić:
// "Wartość zmiennej "zmienna2" to 5"
?>
Instrukcje warunkowe
Używa się jej do wykonania pewnej instrukcji (lub bloku
instrukcji), ale tylko w pewnych okolicznościach - zostanie
spełniony określony warunek (lub cały zestaw warunków).
if(wyrażenie_warunkowe)
instrukcja wykonywana jeśli spełniony zostanie warunek
else if(inne_wyrażenie_warunkowe)
instrukcja wykonywana jeśli spełniony zostanie drugi warunek,
a pierwszy nie
else
instrukcja wykonywana jeśli nie zostanie spełniony żaden z warunków
?>
if( ($a > $b || $a > $c) && // Nawiasy klamrowe nie są potrzebne - to
$d == $e ) // 2 linie ale jedna instrukcja
echo 'Zmienna $a jest większa od $b a zmienna $d jest równa $e, '.
'więc ten tekst pokaże się.'; // Taka konstrukcja jest dozwolona
Pętla FOR
for ( inicjalizacja zmiennych ; sprawdzenie warunku ;
modyfikacja zmiennych)
{
blok wyrażeń
}
?>
Przykład:
for( $x = 1; $x <= 10; $x++ )
echo $x."
";
?>
Pętla while
Przykład:
while( warunek ){
...
instrukcje
...
$x=1;
}
while($x <= 10){
echo $x."
";
?>
$x++;
}
?>
Pętla do...while
Od zwykłej pętli while różni się ona tym, że polecenia zawarte w pętli będą
przynajmniej raz wykonane - w przypadku pętli while tak być nie musi, to
znaczy jeśli za pierwszym razem warunek nie zostanie spełniony to
polecenia z pętli nigdy nie zostaną wykonane.
do{
...
instrukcje
...
}while( warunek );
?>
Przerywanie wykonań pętli
Czasem zachodzi potrzeba Istenie też polecenie, które
przerwania danej iteracji powoduje całkowite wyjście z pętli
(powtórzenia) pętli i przejścia do - nie tylko z bieżącej iteracji.
następnej iteracji.
for($x = 0; $x<10; $x++) {
for($x = 1; $x<=100; $x++) {
if($x % 2 != 0)
if($nazwa == "Test1")
continue;
break;
}
echo $x." ";
}
?>
?>
Składnia switch
Składnia switch jest instrukcją warunkową, ale jedną
switch($zmienna){
zmienną można porównać nie z jedną wartością, ale z
case 'wartość1':
kilkoma.
...
instrukcje
...
$i = 3;
break;
case 'wartość2':
switch($i){
case 0:
...
case 1:
instrukcje
case 2:
...
case 3:
break;
echo "Zmienna $i jest mniejsza bądz równa od trzech\n";
default:
break;
... case 4:
echo "Zmienna $i jest równa cztery\n";
instrukcje
break;
...
default:
}
echo "Zmienna $i jest większa od czterech\n";
}
?>
?>
Tablice
Tablice są bardzo specyficznym typem zmiennych - są to, najprościej
mówiąc, zmienne zawierające w sobie uporządkowany zbiór
zmiennych. Do zmiennych tych uzyskuje się dostęp przez liczbę w
nawiasie kwadratowym podane bezpośrednio po nazwie zmiennej -
tablicy. Liczba ta to tak zwany indeks - numer kolejny zmiennej w
tablicy. Tak samo przypisuje się wartość do tablicy.
$tablica[0] = "Wpis numer 0";
$tablice[1] = "Wpis numer 1";
$tablica[2] = "Wpis numer 2";
?>
Tablica asocjacyjna
W PHP występuje też inny rodzaj tablic, tak zwane tablice asocjacyjne
(zwane też czasem haszami - hash table). Są to tablice, w których zamiast
indeksów liczbowych używa się identyfikatorów znakowych (kluczy)
$tablica["imie"] = "Jan";
$tablica["nazwisko"] = "Kowalski";
$tablica["adres"] = "Polna 1";
echo $tablica["imie"]." ".$tablica["nazwisko"].", ul. ".$tablica["adres"]."\n";
?>
Przeglądanie tablic
$tbl[] = 1;
$tbl[] = 2;
$tbl[] = 3;
$tbl[] = 4;
$tbl[] = 5;
for( $x = 0; $x < 5; $x++ ) { // Pętla wykona się 5 razy (0...4)
echo $tbl[$x];
}
?>
Przeglądanie tablic
Zwykła tablica indeksowana Tablica asocjacyjna
$tbl[] = 1; $tablica["imie"] = "Jan";
$tbl[] = 2; $tablica["nazwisko"] = "Kowalski";
$tbl[] = 3; $tablica["adres"] = "Polna 1";
$tbl[] = 4;
$tbl[] = 5; while( list($klucz, $wartosc) = each($tablica) )
echo "$klucz =>
";
for( $x = 0; $x < count($tbl); $x++ )
{ ?>
echo $tbl[$x];
}
?>
Sortowanie tablic
asort() - sortuje tablice asocjacyjne zachowując przypisanie kluczy
do wartości
$owoce = array ( "d"=>"mango", "a"=>"papaja",
"b"=>"banan", "c"=>"aronia");
asort ($owoce);
// Funkcja ta powoduje powrót do pierwszego elementu tablicy
reset ($owoce);
while (list ($klucz, $wartosc) = each ($owoce)) {
echo "$klucz = $wartosc\n";
}
?>
Wynikiem działania powyższego przykładu powinno być:
c = aronia
b = banan
d = mango
a = papaja
Sortowanie tablic
arsort() - sortuje w odwrotnej kolejności tablice asocjacyjne
zachowując przypisanie kluczy do wartości. Funkcja prawie identyczna
jak poprzednia, tyle że dane sortowane są "od tyłu".
ksort() - sortuje tablice asocjacyjne według kluczy. Poprzedni przykład
po podmianie funkcji asort na ksort powinna dać taki wynik:
a = papaja, b = banan, c = aronia, d = mango
rsort() - sortuje zwykłe tablice (nie asocjacyjne) w odwróconej
kolejności
sort() - sortuje zwykłe tablice (nie asocjacyjne) w kolejności
alfabetycznej
uasort() - funkcja sortująca tablice asocjacyjne za pomocą
zdefiniowanej przez użytkownika funkcji porównującej elementy
(nazwa funkcji jest podawana za pomocą drugiego parametru)
usort() - funkcja sortująca zwykłe tablice za pomocą funkcji
zdefiniowanej przez użytkownika
uksort() - funkcja sortująca tablice asocjacyjne według klucza za
pomocą funkcji zdefiniowanej przez użytkownika.
Tworzenie tablic z ciągów
PHP umożliwia zamianę ciągów na tablice i odwrotnie. Zamiana ciągu na
tablicę jest bardzo przydatna jeśli zachodzi potrzeba wyciągnięcie jakiegoś
fragmentu danych z ciągu. Załóżmy że w odczytaliśmy z pliku z danymi linię z
logu zapisanego przez licznik WWW: "12/11/2000;19:23:33;Netscape
Navigator;192.168.1.1". Jak widać dane rozdzielone są średnikami. Do
rozdzielania ciągów na tablicę służy funkcja explode().
$tablica = explode(";", $dane);
?>
Tworzenie ciągów z tablic
Czasem potrzebne jest działanie w drugą stronę: złącznie pól tablicy w
jeden ciąg, w którym pola oddzielone są jakimś znakiem (lub kilkoma).
Do tego służy funkcja implode().
$dane = implode(";", $tablica);
?>
Funkcje
Funkcja jest kawałkiem kodu, który można wywołać podając jej nazwę.
Wcześniej podane zostało kilka funkcji dostarczanych przez PHP, takich jak
array(), each(), list(), explode() czy implode(). Jak można zauważyć, funkcje
rozpoznaje się po nawiasach występujących po ich nazwie.
Przykładowa postać funkcji
W nawiasach (jeśli funkcja tego
wymaga) podaje się parametry dla
danej funkcji. Niektóre funkcje
zwracają jakąś wartość, a więc
function suma($parametr1 = 0, $parametr2 = 0)
wywołanie takiej funkcji można
{
$wartosc = $parametr1 + $parametr2;
wstawić jak dowolne inne wyrażenie
do listy parametrów innej funkcji czy
return $wartosc;
np. do obliczenia.
}
?>
Włączanie kodu z pliku
Instrukcje pozwalające na włączenie do kodu zawartość innego pliku
także zawierającego kod PHP. Instrukcjom podaje się jeden parametr -
nazwę pliku do włączenia do kodu.
require - p lik i d o łąc z a n e s ą d o k o d u je s z c z e p rz e d
p a rs o w a n ie m , w k a żd y m m ie js c u g d z ie z n a jd u je s ię in s tru k c ja .
inc lude - p lik i d o łąc z a n e s ą d o k o d u p o p a rs o w a n iu ; in s tru k c ja
ta n a d a je s ię d o d o łąc z a n ia p lik ó w k tó ry c h n a z w a p o b ie ra n a
je s t z e z m ie n n e j.
rea dfile - d a n e p o b ra n e z p lik u n ie s ą p rz e tw a rz a n e p rz e z
P H P , w ięc fu n k c ja ta n a d a je s ię ty lk o d o w y św ie tla n ia p lik ó w
H T M L b ąd z c z y s to te k s to w y c h .
Zasięg zmiennych
Zmienne globalne Zmienne statyczne
$a = 23; $a = 23; function aaa(){ function aaa(){
$a = 0; static $a = 0;
function aaa(){ function aaa(){ echo $a; echo $a;
global $a; $a++; $a++;
} }
echo $a; echo $a;
aaa(); aaa();
} } aaa(); aaa();
aaa(); aaa(); aaa(); aaa();
?> ?> ?> ?>
Wyniki wykonania programu:
nic 23 0 0
0 1
0 2
Tablice superglobalne
Tworzone przez PHP - użytkownik nie może samemu tworzyć takich tablic.
Zawierają one dane przekazywane do PHP :
metodami GET - $_GET,
metodami POST - $_POST,
informacje o przekazanych plikach - $_FILES,
dane z ciasteczek - $_COOKIE
sesji - $_SESSION
Mają one zastąpić tablice $HTTP_*_VARS, które ze względu na
kompatybilność są jeszcze obecne.
Różnica między tablicami superglobalnymi a tymi używanymi wcześniej jest
taka, że tablice superglobalne dostępne są w dowolnym miejscu kodu, bez
potrzeby użycia instrukcji global.
Formularze
Formularze HTML wykorzystywane są do pobierani informacji od
użytkownika.
Wszystkie dane z formularza trafiają do odpowiednich tablic
asocjacyjnych o nazwach kluczy takich, jak nazwy pól formularza.
Jeśli w konfiguracji PHP włączona zostanie opcja register_globals (jest
ona domyślnie wyłączona od wersji 4.2.0), to stworzone zostaną od razu
zmienne o nazwach takich jak nazwy pól formularza.
Przekazywanie parametrów: metody GET i POST.
Zależnie od metody, zmienne trafiają do odpowiednich tablic
asocjacyjnych. Dane przesłane metodą:
GET trafiają do tablicy $_GET (lub $HTTP_GET_VARS)
POST trafiają do tablicy $_POST (lub $HTTP_POST_VARS).
Formularze plik jeden.html
Test formularza
Formularze plik dwa.html
Wyniki Imię:
Nazwisko:
Faktura:
Zamówienie: case "kola":
echo "Coca-cola"; break;
case "fanta":
echo "Fanta"; break;
case "sprite":
echo "Sprite"; break;
}
?>
Odnośniki
Istnieje możliwość przekazywania niedużej liczby parametrów za
pomocą zwykłych odnośników dostępnych w języku HTML.
W takim przypadku wykorzystuje się metodę GET - konstruuje się
odnośnik, na końcu którego należy umieścić znak zapytania a po nim
oddzielone ampersandami (&) pary parametr=wartość, np:
Kliknij tu Obsługa sesji
Umożliwia on przekazywanie parametrów między stronami w łatwy
sposób. Zmienne są przechowywane po stronie serwera a u klienta
trzymane jest tylko ID sesji.
Obsługa sesji wymaga to posiadania PHP skompilowanego z opcją --enable-trans-sid.
session_start() - rozpoczęcie sesji; PHP sprawdza, czy przypisano już ID sesji.
Jeśli tak, to odczytuje zmienne zarejestrowane w tej sesji. Jeśli nie,
generowany jest nowy, unikalny identyfikator sesji.
session_register( nazwa_zmiennej ) - rejestracja zmiennej w celu rozpoczęcie
śledzenia jej wartość
session_unregister( nazwa_zmiennej ) - powoduje, że PHP "zapomina" o
zmiennej
Zmienne zarejestrowane w sesji przechowywane są w tablicy
$_SESSION. Kluczem tej tablicy jest oczywiście nazwa zarejestrowanej
zmiennej.
Obsługa sesji
session_start();
if (!isset($_SESSION['count'])) { // jeśli zmienna nie jest zarejestrowana
$_SESSION['count'] = 0; // przypisz jej początkową wartość
} else { // jeśli jest zarejestrowana
$_SESSION['count']++; // zwiększ jej wartość
}
echo 'Strona odczytana '.$_SESSION['count'].' razy w ciągu tej sesji';
?>
Porównywanie ciągów
strcmp() - podstawową funkcją służącą do porównywania
ciągów. Parametrami są dwa ciągi tekstowe, które mają być
porównane. Funkcja ta zwraca wartość 0 jeśli ciągi są takie
same, wartość większą od zera jeśli pierwszy ciąg jest większy
od drugiego lub wartość mniejszą od zera jeśli pierwszy ciąg jest
mniejszy od drugiega. Funkcja ta rozróżnia wielkość znaków.
funkcji strcasecmp() porównuje dwa ciągi nie biorąc pod uwagę
wielkości znaków (parametry i wartości zwracane takie jak przy
funkcji strcmp).
funkcja strncmp() porównuje tylko taką ilość początkowych
znaków z podanych ciągów, jaka została podana jako trzeci
parametr tej funkcji.
strncasecmp() wersja funkcji strncmp() ignorująca wielkość
znaków.
Wyciąganie fragmentów ciągów
substr
$data = "1992/11/19"; $tekst = "To jest tekst. Tego zdania nie będzie widać.";
$rok = substr($data, 0, 4); $zdanie = substr($tekst, 0, strpos($tekst, "."));
?> ?>
explode split
$data = "1992/11/19"; $tekst = "19/11/1982 01:43:12.10";
$tablica = explode("/", $data); $tablica = split("[ /:.]", $tekst);
?> ?>
Podmienianie fragmentów ciągów
$tekst = "Jeśli jesteś za podnieś rękę";
$wynik = str_replace("za", "przeciw", $tekst);
?>
Podmienianie znaków w ciągach
Funkcja strtr - przyjmuje 3 parametry:
ciąg w którym będą podmieniane znaki,
ciąg zawierający znaki do podmiany
ciąg zawierający znaki, na które te podane w drugim parametrze będą
podmienione.
Inne funkcje
htmlspecialchars($string) - funkcja ta zamienia znaki używane w kodzie HTML na takie,
które zostaną wyświetlone prawidłowo, a nie będą interpretowane przez przeglądarkę
jako znacznik HTML. Wszystkie wystąpienia znaku < zostają zamienione na znak < a
znaku > na &apm;gt;. Funkcja ta jest bardzo przydatna gdy zachodzi potrzeba
wyświetlenia kodu zródłowego HTML, który nie powinien być interpretowany przez
przeglądarkę.
htmlentities($string) - jest to rozszerzona wersja funkcji htmlspecialchars(). Zamienia
wszystkie znaki na odpowiadające im kody HTML, jeśli takowe istnieją. Np. wszystkie
wystąpienia znaku ó zamieniane są na ó.
chop($string), trim($string), ltrim($string), rtrim($string) - funkcje te mają za zadanie
usunięcie 'białych znaków' (spacja, tabulator, znacznik nowego wiersza) z początku lub
końca ciągu. Funkcja chop(), tak jak i rtrim(), usuwa te znaki z końca ciągu, ltrim() z
początku a trim() i z początku i końca.
nl2br($string) - bardzo przydatna funkcja służąca do zamiany znaków końca wiersza na
HTML'owe znaczniki
(bardzo przydatne przy wyświetlaniu sformatowanego tekstu
w oknie przeglądarki).
strip_tags($string) - usuwa wszystkie znaczniki HTML z podanego jako parametr ciągu.
Możliwe jest podanie opcjonalnego drugiego parametru - ciągu, który zawiera nazwy
znaczników HTML, które mają zostać pozostawione.
Komunikacja z bazą MySQL
$host = "149.156.115.209";
$baza = "skbd";
$user = "reader";
$pwd = "";
$connection = mysql_connect($host, $user, $pwd) or die("Couldn't connect :(.");
$db = mysql_select_db($baza, $connection) or die("Couldn't select database.");
$sql = "SELECT indeks,grupa,kierunek FROM `studenci` ORDER BY 1; ";
$result = @mysql_query($sql,$connection) or die("Couldn't execute query.");
$num = mysql_num_rows($result);
if($num>0)
while($res = mysql_fetch_array($result)){
echo $res[0] . $res[0] . $res[0];
}
}
Wyszukiwarka
Podobne podstrony:
php 2Biblioteka PHP Wysyłanie pliku na serwerk phpDelphi i PHPphp 2php 3PHP i Oracle Tworzenie aplikacji webowych od przetwarzania danych po Ajaksainstructions for php scriptsPHP i MySQL Dla kazdegokurs phpwww mediweb pl sex wyswietl vad php id=703PHP JS readmeSKiBD 2 TCPIPwięcej podobnych podstron