KURS PHP.doc

(102 KB) Pobierz
KURS PHP

KURS PHP

 

·         Co to jest PHP

·         Instalacja PHP

    1. Konfiguracja
    2. Przykładowe opcje konfiguracji

·         Składnia języka

    1. Typy zmiennych
    2. Zmienne predefiniowane
    3. Stałe
    4. Instrukcje warunkowe
    5. Pętle
    6. Instrukcja switch
    7. Instrukcje break i continue
    8. Funkcje

·         Ciasteczka - ( cookie )

·         Obsługa plików

·         PHP a bazy danych

·         Wysyłanie poczty w PHP

·         Bezpieczeństwo w PHP


Co to jest PHP ?

PHP jest jednym z wielu języków programowania, które umożliwiają szybkie tworzenie dynamicznych stron internetowych. Oficjalna nazwa PHP to " PHP: Hypertext Preprocessor " a sam skrót pochodzi od Personal Home Page. Składnią język ten zbliżony jest do C. PHP zostało napisane przez Rasmusa Lerdorfa, w celu poprawienia funkcjonalności własnej strony internetowej. Jego "twór" został spisany przez programistów z całego świata i tak powstał PHP3 a później PHP4 z nowym mechanizmem ( engine ) Zend. PHP został stworzony w celu pracy z WWW i dlatego jest pełnowartościowym językiem programowania umożliwiającym tworzenie aplikacji internetowych. Współpracuje z wieloma bazami danych np. MySQL oraz z usługami sieciowymi np. IMAP, POP3, czy HTTP. PHP może być instalowane na różnych platformach. Rozprowadzane jest głównie w postaci kodu źródłowego dzięki czemu może być skompilowane na wielu platformach np. Linuksie, FreeBSD lub Windows. Może pracować jako program CGI, bądz być zaistalowanym jako moduł APACHE. Może działać z każdym (?) serverem WWW



Instalacja PHP

Oczywistym jest, że instalację należy zacząć od pobrania dystrybucji PHP. Można ją pobrać z witryny www.php.net. Mamy możliwość pobrania kilka rodzajów pakietu. Najlepszy będzie kod źródłowy ale dla mniej zainteresowanych lub leniwych polecam binarną wersję pod Windows.
Instalowanie wersji binarnej dla Windows nie nastręcza trudności. Osobiście polecam program "KRASNAL", który zawiera m.in. serwer APACHE, MySQL oraz PHP.

Kompilacja PHP

Kompilacja kodu w systemach Unixowych jest do siebie podobna - niezależnie jakiego systemu używamy np. Linux, Solaris. Należy pamiętać, że PHP można zainstalować na kilka sposobów. Jeżeli serwerem WWW jest APACHE, wówczas można skompilować PHP jako plik wykonywalny, moduł ładowany dynamicznie lub jako bibliotekę. Poniżej zostanie przedstawiona instalacja PHP jako modułu ładowanego dynamicznie.
Po pobraniu odpowiedniego pakietu i rozpakowaniu go należy tak skompilować APACHE by obsługiwał dynamiczne moduły:

cd <sciezka_apache>
make clean
./configure --enable-module=so --enable-rule=SHARED_CORE --prefix=/www
make
make install

Po odpowiednim przygotowaniu APACHE należy skompilować PHP w następujący sposób:

cd <sciezka_do_php>
make clean
rm config.cache
./configure --with-apxs=/www/bin/apxs (pozostałe opcje konfiguracji)
make
make install

Polecenia "make clean" i "rm config.cache" służą do usunięcia poprzedniej instalacji. Jeśli instalacja jest pierwszą nie trzeba ich używać. Ważną informacją szczególnie dla osób, które jeszcze nie przeprowadzali takiego procesu tj. kompilacji, jest to, że skrypt konfiguracyjny poszukuje w systemie narzędzi, plików i innych danych systemowych potrzebnych do przeprowadzenia kompilacji. Na podstawie tych danych tworzy skrypt kompilujący kod. Może się zdarzyć, że nie będzie wszystkich wymaganych parametrów do przeprowadznia instalacji.
W wyniku procesu kompilacji zostanie stworzony m.in. plik wykonywalny php. Aby sprawdzić poprawność wykonanej kompilacji należy wpisać

php < /dev/null

Wynik postacią zbliżony do :

X-Powered-By PHP/4.0.2
Content-type text/html

oznacza prawidłowo zakończoną kompilację.

Konfiguracja

Sposób konfiguracji PHP jest niezależny od platformy, na której działa. Sprowadza się do modyfikacji pliku php.ini. Osoby nie znające opcji konfiguracji mogą skorzystać z plików dołączonych w pakiecie instalacyjnym: php.ini-optimized oraz php.ini-dist. Wystarczy zmienić nazwę któregoś pliku na php.ini i zgrać do odpowiedniego katalogu. Dla Windows jest to C:\Windows a dla Unix najczęściej /usr/local/lib .



Przykładowe opcje konfiguracji

·         display_errors:boolean - określa czy mają być wyświtlane błędy

·         doc_root:string - określa główny katalog PHP na serwerze

·         error_log:string - określa nazwę pliku, w którym mają być zapiswane błędy

·         max_execution_time:integer - określa czas w sekundach po jakim analizator przerwie działanie skryptu

·         safe_mode:boolean - określa czy PHP ma działać w trybie bezpiecznym

·         browscap:string - nazwa pliku opisującego możliwości przeglądarki

Opcji konfiguracji PHP jest bardzo dużo. Wszystkie są dostępne w witrynie www.php.net.



Składnia języka

PHP jest najczęściej wbudowany w kod HTML dlatego istnieją znaczniki tworzące bloki PHP:

<? echo "Witaj świecie"; ?> -działa tylko z ustawioną opcją short_tag_open w pliku php.ini

<?php echo "Witaj świecie"; ?> - wykorzystanie pełnych znaczników

<script language="php"> echo "Witaj świecie"; </script> - dla edytorów HTML nie obsługujących instrukcji przetwarzania

<% echo "Witaj świecie"; %> - działa tylko z ustawioną opcją asp_tags

Składnią PHP jest zbliżony do języka C. Instrukcje są oddzielane średnikiem.

Komentarze

W PHP stosujemy komentarze takie jak w języku C lub C++ oraz te używane w skryptach Unixa. Komentarze jednoliniowe komentują do końca lini lub do końca bierzącego bloku PHP (w zależności co nastąpi pierwsze). Podobnie jak w C nie można zagnieżdżać wielowierszowych komentarzy.

<?php
print("Witaj świecie <br>"); // Komentarz jednowierszowy w stylu C++
?>

<?php
/* To jest komentarz
wielowierszowy */
print("Witaj świecie <br>");
?>

<?php
print("Witaj świecie <br>"); # A to komentarz w stylu Unixa
?>

<?php
/*
echo "Witaj świecie"; /* Przykład zagnieżdżenia komentarza i spowodowania tym samym błędu */
*/
?>

Typy zmiennych w PHP

W PHP wyróżniamy następujące typy: liczby całkowite, zmiennoprzecinkowe, ciągi, tablice i objekty. Typ zmiennej nie jest jawnie ustalany przez programistę lecz zależy od kontekstu użycia zmiennej. W celu poprawnego zarządzania typami PHP posiada funkcje gettype() settype() is_integer() is_array() itp.

Liczby

Liczby całkowite można przedstawiać w różnych notacjach: dziesiętnej, ósemkowej i szesnastkowej. Liczby zmiennoprzecinkowe można przedstawiać jako notacja zwykła lub zapis naukowy:

<?php
$zmienna1=100; // Liczba dziesiętna
$zmienna2=-100; // Liczba ujemna
$zmienna3=01013; // Liczba 523 w zapisie ósemkowym
$zmienna4=0x20B; // Liczba 523 w zapisie szesnastkowym
$zmienna5=100.100; // Zapis zwykły liczby zmiennoprzecinkowej
$zmienna6=10.0100e2; // Notacja naukowa liczby zmiennoprzecinkowej
?>

Ciągi

Ciągi w PHP ograniczamy cudzysłowami ( " ) lub apostrofami ( ' ). Zapis wpływa na sposób interpretacji ciągu. Gdy zastosujemy cudzysłowy zmienne zawarte pomiędzy nimi zostaną zamienione na ich wartości. Przy zastosowaniu apostrofów zmienne nie są zamieniane.

Znaki specjalne w ciągach zamkniętych cudzysłowami

Sekwencja znaków

Znaczenie

\n

nowa linia

\r

powrót karetki CR

\t

tabulacja

\

lewy ukośnik

\"

cudzysłów

\$

znak dolara


W PHP ciągi można łączyć ze sobą. Służy do tego kropka ( . ) Podobnie jak w języku C mamy dostęp do każdego znaku ciągu, który traktujemy jako tablicę znaków.

<?php
$ciag="To jest przykład ciągu";
$ciag1="A to inny przykład";

/* Wypisanie ciągów */

print("$ciag"); // Wypisze -> To jest przykład ciągu
print("\"); // Wypisze -> $ciag
print("\' $ciag1 \'"); // Wypisze -> $ciag1

/* Łączenie ciągów */

$zmienna1="PHP";
$zmienna2=" kurs";
$zmienna3=$zmienna1.$zmienna2;
print("$zmienna3"); // Wypisze -> PHP kurs
?>

Tablice

W PHP występują tablice indeksowane (wektory) oraz asocjacyjne. Można również tworzyć tablice wielowymiarowe. Dzięki konstrukcji tablic można jeden wymiar tablicy indeksować liczbą a inny asocjacyjnie. Tablice możemy tworzyć przy pomocy funkcji list() lub array() oraz poprzez jawne przypisanie wartości.

Przykład inicjowania i wykorzystania tablic:

<?php
*/ Tworzenie prostej tablicy */
$a[0]="Kurs";
$a[1]="php";
$a[]="w skryptotece"; // Jawne przypisanie do indeksu 2
$a[]="www.skryptoteka.pl"; //Jawne przypisanie do indeksu 4

/* Tworzenie tablicy asocjacyjnej */

$kierunkowy["Łódź"]="0-42";
$kierunkowy["Warszawa"]="0-22";
$kierunkowy["Piotrków"]="0-44";

/* Tworzenie tablicy asocjacyjnej przy pomocy funkcji array() */

$kierunkowy=array("Łódź"=>"0-42","Warszawa"=>"0-22","Piotrków"=>"0-44");

/* Tworzenie tablicy wielowymiarowej */

$maciez=[0][0]="wartosc";
$zmienna["Wydział"]["Kierunek"]="Informatyka"; // Tworzona asocjacyjnie
$zmienna_a[1]["indeks"]="PHP"; // Indeksowanie liczbowe z asocjacyjnym
?>

Zmienne w PHP są poprzedzane znakiem $, po którym następuje nazwa zmiennej. Nazwa zmiennej musi zaczynać się od litery bądź znaku podkreślenia. W nazwie dopuszczone są litery a-z, A-Z, 0-9 oraz znaki ASCII z zakresu 127-255. Wartości do zmiennych mogą być przypisywane przez samą wartość lub poprzez referencję. Aby przypisać poprzez referencję należy nazwę zmiennej poprzedzić znakiem &. W przypadku przypisania przez wartość zmienne pozostają niezależne, zmiana wartości jednej zmiennej nie ma wpływu na wartość drugiej. W przypadku przypisania przez referencję zmienne skojarzone są ze sobą zależne i zmiana wartości jednej zmiennej wpływa na wartość skojarzonej z nią zmiennej. Wielkość liter jest istotna w nazwie zmiennej tj. $Nazwa i $nazwa to dwie różne zmienne.

<?php
$_zmienna="Skryptoteka";
$zmienna=$_zmienna; //Przypisanie poprzez wartość
print("$_zmienna $zmienna"); // Wypisze -> Skryptoteka Skryptoteka
$_zmienna="www.skryptoteka.pl";
print("$_zmienna $zmienna"); // Wypisze -> www.skryptoteka.pl Skryptoteka

/* Przypisanie przez referencję */

$_zmienna=&$zmienna;
print("$_zmienna $zmienna"); // Wypisze -> Skryptoteka Skryptoteka
$zmienna="120";
print("$_zmienna $zmienna"); // Wypisze -> 120 120
?>

Zmienne predefiniowane

PHP oprócz zmiennych tworzonych przez użytkownika posiada szereg zmiennych tworzonych przez system. Zmienne te zależą od wielu czynników np. wersja PHP, serwera WWW. PHP tworzy także zmienne dla danych przesyłanych z formularza metodą POST, GET oraz zmienne plików cookies. Do obejrzenia wszystkich zmiennych służy funkcja phpinfo().

Przykładowe zmienne predefiniowane

Sekwencja znaków

Znaczenie

REMOTE_ADDR

Adres IP oglądającego stronę

SERVER_PROTOCOL

Nazwa i wersja protokołu

PHP_SELF

Nazwa pliku z wykonywanym skryptem

PHP_COOKIE_VARS

Tablica asocjacyjna zmiennych cookie

PHP_GET_VARS

Tablica asocjacyjna zmiennych GET

PHP_POST_VARS

Tablica asocjacyjna zmiennych POST

REMOTE_PORT

Port WWW klienta


Wszystkie zmienne predefiniowane są opisane w manualu PHP

Stałe

W PHP można definiować stałe. Używa się do tego funkcji define()

<?php

define("nazwastalej","jejwartosc");
define("Ulica","Warszawska");
print(Ulica); // wypisze -> Warszawska

?>

PHP posiada dodatkowo kilka stałych predefiniowanych.

Instrukcje warunkowe - if, else, elseif

Instrukcja if służy do organizacji sterowania poprzez tworzenie warunków na podstawie wyrażeń logicznych.

<?php

if(1<2)
{
echo "Warunek if został spełniony";
}
else
{
echo "Wypisze jeśli warunek if nie został spełniony";
}

$kolor="czerwony";
if($kolor=="zielony")
{
echo "Warunek if został spełniony";
}
elseif($kolor=="żółty")
{
echo "Wypisze jeśli warunek elseif został spełniony";
}
else
{
echo "Wypisze jeśli warunek else został spełniony";
}

?>

Pętle

W PHP wyróżniamy cztery pętle. Ich działanie jest podobne do pętli języka C i innych języków wysokiego poziomu.

<?php

// Pętla while

$warunek=0;
while($warunek<10)
{
echo "$warunek"; $warunek++;
}

// Pętla do..while

$warunek=0;
do
{
echo "$warunek"; $warunek++;
}
while($warunek<10)

?>

Pętle while i do..while są zasadą działania do siebie podobne. Obie wykonują się do czasu gdy ich warunek jest spełniony tj. dopóki ($warunek<10) jest prawdą. Jedyną różnicą pomiędzy nimi jest to, że jeśli warunek ($warunek<10) nie jest spełniny już na samym początku pętla while nie wykona się ani razu natomiast pętla do..while wykona się dokładnie raz. W pierwszym przypadku warunek pętli jest sprawdzany na początku, w drugim na końcu.

<?php

// Pętla for

for($index=0;$index<10;$index++)
{
echo "$index";
}

?>

...

Zgłoś jeśli naruszono regulamin