PHP to darmowy, skryptowy język programowania, który pozwala m.in. na dynamiczne generowanie witryn internetowych. Oznacza to, że skrypt może pobierać dane służące do wygenerowania strony (takie jak newsy, artykuły itp.) z baz danych, plików i innych źródeł, a następnie, na podstawie tych danych, budować kod HTML (choć może także generować np. obrazy).
Zanim przystąpimy do pracy z PHP, musimy zainstalować serwer internetowy oraz skonfigurować go tak, aby współpracował ze skryptami PHP. Jednym z najpopularniejszych w internecie serwerów HTTP jest Apache, darmowy do wszelkich zastosowań komercyjnych. Te właśnie cechy przesądziły o tym, że zdecydowałem się wykorzystać Apache\’a na potrzeby niniejszego kursu.
Instalacja serwera Apache w systemie Windows
{tlo_1}
Krok 1.
Po uruchomieniu instalatora, wybieramy Next
{/tlo}
{tlo_0}
Krok 2.
Czytamy umowę licencyjna. Jeśli się z nią zgadzamy, zaznaczamy opcje I accept the terms in the license agreement i wybieramy Next
{/tlo}
{tlo_1}
Krok 3.
Instalator wyświetli kilka informacji wstępnych o serwerze. Po zapoznaniu się z nimi wybieramy Next
{/tlo}
{tlo_0}
Krok 4.
Uzupełniamy informacje o domenie w jakiej pracuje nasz serwer. Ponieważ będzie on uruchamiany na naszym lokalnym serwerze (na komputerze, na którym pracujemy) i nie będzie dostępny przez internet, odpowiednie pola wypełniamy tak jak na rysunku. Następnie wybieramy Next
{/tlo}
{tlo_1}
Krok 5.
Wybieramy instalacje typowa (Typical), a następnie klikamy Next
{/tlo}
{tlo_0}
Krok 6.
Wybieramy katalog, w którym ma zostać zainstalowany Apache, lub pozostawiamy katalog domyślny. Następnie klikamy Next
{/tlo}
{tlo_1}
Krok 7.
Jeśli wszystko w poprzednich krokach zrobiliśmy poprawnie, klikamy Install. W przeciwnym razie możemy się cofnąć (wybierając Back) do któregoś z kroków w celu skorygowania ostawień
{/tlo}
{tlo_0}
Krok 8.
Czekamy na zakończenie instalacji
{/tlo}
{tlo_1}
Krok 9.
Po zakończonej instalacji wybieramy Finish. Od tej pory serwer Apache jest już zainstalowany, a obok zegara systemowego powinna pojawić się jego ikonka
{/tlo}
Instalacja Apache\’a jest stosunkowo prosta. Po zakończeniu instalacji uruchamiamy przeglądarkę internetową i wpisujemy adres strony {stala}http://localhost{/stala} (czyli odwołujemy się do serwera uruchomionego na naszym komputerze). Jeśli spowoduje to wyświetlenie strony, to znaczy, że wszystko działa prawidłowo i możemy przystąpić do instalacji PHP. Skorzystamy z najnowszej wersji tego języka 5.1.6. Niestety, instalacja PHP nie jest już tak prosta jak serwera Apache.
Instalacja PHP
Etap 1. Dekompresja archiwum
{tlo_1}
Krok 1.
W programie WinRAR znajdujemy plik php-5.1.6.Win32.zip.
{/tlo}
{tlo_0}
Krok 2.
Po odnalezieniu katalogu z plikiem klikamy dwukrotnie nazwę pliku
{/tlo}
{tlo_1}
Krok 3.
Klikamy przycisk Extract To
{/tlo}
{tlo_0}
Krok 4.
Otworzy się okno służące do rozpakowywania pliku. W polu Destination Path wpisujemy ścieżkę gdzie chcemy rozpakować archiwum – np. tak jak w przykładzie na dysk C do katalogu PHP (c:\\PHP)
{/tlo}
{tlo_1}
Krok 5.
Czekamy a. WinRAR zakończy rozpakowywanie archiwum. Gdy to nastąpi, można go zamknąć
{/tlo}
{tlo_0}
Krok 6.
Po zakończonej dekompresji, na dysku C pojawi się katalog PHP zawierający PHP 5.1.6
{/tlo}
Etap 2. Modyfikacja ustawień
{tlo_1}
Krok 1.
Modyfikujemy konfigurację serwera Apache. Konfiguracja serwera znajduje się w katalogu, w którym serwer został zainstalowany, w podkatalogu conf. Do pliku httpd.conf dopisujemy następujące linie:
LoadModule php5_module c:\PHP\php5apache2.dll
AddType application/x httpd-php .php
PHPIniDir \"C:/PHP\"
{/tlo}
{tlo_0}
Krok 2.
Modyfikujemy parametr DocumentRoot, tak aby wskazywał na katalog, w którym będziemy zapisywali strony internetowe oraz skrypty PHP
DocumentRoot \"c:/strony\"
{/tlo}
{tlo_1}
Krok 3.
W katalogu z PHP znajduje się plik php.ini-dist – zmieniamy jego nazwę na php.ini.
{/tlo}
{tlo_0}
Krok 4.
Restartujemy Apache\’a korzystając z Monitora Serwera Apache lub z opcji dostępnych na pasku Start w grupie Apache HTTP Server 2.0.55 (rys. 4).
Teraz w notatniku bądź jakimkolwiek edytorze tekstu tworzymy plik o następującej zawartości:
i zapisujemy go pod nazwą info.php w katalogu w zmiennej DocumentRoot (krok 2). Następnie w przeglądarce wpisujemy adres {stala}http://localhost/info.php.{/stala} Powinna pokazać się strona podobna do tej z rys. 5, co oznacza, że Apache został skonfigurowany poprawnie i obsługuje skrypty PHP.
{/tlo}
Zaczynamy
Zasada działania PHP
PHP jest językiem, którego polecenia są wykonywane po stronie serwera, zanim jeszcze strona zostanie przesłana do przeglądarki użytkownika. Działa więc po zupełnie przeciwnej stronie niż HTML czy JavaScript. (HTML i JavaScript jest wysyłany do przeglądarki użytkownika i dopiero tam jest interpretowany i wykonywany.) Dzięki temu może bez problemu pobierać dane z bazy danych czy pliku umieszczonego na serwerze i na podstawie tych danych wygenerować stronę, która następnie zostanie wysłana do użytkownika. Działanie PHP po stronie serwera wyklucza możliwość np. wywołania funkcji druku u użytkownika.
Skrypt PHP można swobodnie przeplatać ze stroną internetową napisaną w HTML-u. Należy jedynie zaznaczyć, w którym miejscu skrypt zaczyna się i kończy oraz nadać plikowi ze skryptem nazwę z rozszerzeniem .php:
Przykład 1
Jak widać, skrypty musimy umieszczać pomiędzy znacznikiem {html}.{/html}
W przytoczonym przykładzie nie uniknąłem konstrukcji, która może powodować wątpliwości – są nimi znaki // poprzedzające tekst. Znakami takimi będziemy rozpoczynać komentarz liniowy. Oznaczają one, że nie chcemy, aby PHP analizował treść podaną za nimi aż do końca linii. W PHP występują jeszcze dwa rodzaje komentarzy:
- # – także rozpoczyna komentarz liniowy – działa więc tak samo jak //,
- /* komentowany blok tekstu */ – oznacza komentarz blokowy – komentowany jest w tym przypadku tekst zawarty pomiędzy znakiem /* a */, przy czym tekst ten może znajdować się w wielu liniach.
Najprostszym skryptem jaki możemy napisać w PHP, jest wyświetlenie napisu:
Zanim przetestujemy ten skrypt, zakładamy nowy podkatalog w katalogu, który określiliśmy w zmiennej DocumentRoot podczas konfigurowania Apache\’a. Podkatalog ten nazwiemy lekcja1.
Teraz skrypt przedstawiony wyżej zapisujemy pod nazwą echo1.php, w katalogu lekcja1. Aby zobaczyć rezultat naszej pracy, w przeglądarce internetowej wpisujemy adres
{stala}http://localhost/lekcja1/echo1.php{/stala}. Powinien pojawić się napis:
Witaj w świecie PHP
Nie uzyskaliśmy więc nic więcej, niż moglibyśmy zrobić za pomocą HTML-a. Trzeba jednak pamiętać, że PHP najczęściej generuje HTML-a. Jak więc widać, polecenie {html}echo{/html} służy do wypisania ciągu znaków.
Znaczniki PHP
Poza znacznikami {html}{/html} istnieją jeszcze inne sposoby wskazania miejsca, w którym zaczyna się skrypt PHP:
{html} /* skrypt w PHP */ ?> {/html}- wersja skrócona poprzedniego znacznika,
{html}<% /* skrypt w PHP */ %>{/html} – wersja ASP znacznika,
{html}{/html} – wersja HTML znacznika.
Należy jednak unikać wersji skróconej oraz wersji ASP tych znaczników, ponieważ ich działanie może zostać wyłączone odpowiednim wpisem w pliku php.ini. Zaleca się korzystanie ze standardowych znaczników PHP, czyli {html}.{/html}
Zmienne
Podstawowe informacje o zmiennych w PHP
PHP tak jak każdy język programowania korzysta ze zmiennych. Zmienną możemy rozumieć jak swego rodzaju kontenerek, w którym zapamiętujemy jakąś wartość. Wartością tą może być np. cyfra, napis czy tablica (o tablicach więcej w kolejnych numerach MI). Zmienne w PHP mają nazwy rozpoczynające się od znaku $ i muszą zawierać litery (małe i duże), cyfry oraz znak podkreślenia:
$poprawnaZmienna
$_innaZmienna2
$Zmienna
Przykłady nazw zmiennych podane poniżej są niepoprawne:
zmienna //nazwa nie może zaczynać się od cyfry
$#zmienna //nazwa musi zaczynać się od litery , dodatkowo nazwa ta ma także niedozwolony znak #
$zmienn^a //nazwa zawiera niedozwolony znak ^
Najprostszym i najczęściej stosowanym sposobem nadania wartości zmiennej jest skorzystanie z operatora = :
$imie = \"Jan\";
$nazwisko = \"Kowalski\";
$wiek = 20;
Musimy pamiętać o tym, żeby zawsze każdą instrukcje w PHP kończyć średnikiem.
Więcej o napisach
PHP traktuje napisy jako ciąg znaków. Ciąg napisów możemy zdefiniować na dwa sposoby: obejmując go w cudzysłowy lub apostrofy. Jeśli napis obejmiemy w cudzysłowy, możemy w nich podać nazwy zmiennych, które mają być wyświetlone:
Tak więc powyższy skrypt po zapisaniu np. pod nazwą zmienne1.php w katalogu lekcja1 i wywołaniu w przeglądarce strony {stala}http://localhost/lekcja1/zmienne1.php{/stala} spowoduje wyświetlenie napisu:
Nazywam się Jan Kowalski. Mam 20 lat.
Jeśli zmienimy cudzysłowy na apostrofy, PHP nie będzie zastępował nazw zmiennych napotkanych w napisie ich wartościami, zamiast tego napisze:
Nazywam się $imie $nazwisko. Mam $wiek lat.
Można jednak skorzystać ze znaku łączenia napisów i zapisać poprzedni przykład nieco inaczej:
Skorzystaliśmy tu ze znaku kropki, który służy do łączenia napisów. Dzięki temu osiągnęliśmy identyczny wynik jak w przypadku zastosowania cudzysłowu, niestety kosztem czytelności.
Napisy zapisane w cudzysłowach mają jeszcze jedną możliwość – możemy w ich wnętrzu skorzystać ze znaków specjalnych (patrz tabela 1).
Matematyka
Z programowaniem nieodłącznie związana jest matematyka. Najczęściej nie potrzebujemy wykonywać zaawansowanych obliczeń, a wystarczają podstawowe operacje arytmetyczne. PHP pozwala oczywiście na dodawanie, odejmowanie, dzielenie cyfr. W tabeli 2 zostały zebrane operacje arytmetyczne wspierane przez PHP.
Zobaczmy jak to działa:
\";
$roznica = $a - $b;
echo \"Różnica: $roznica
\";
$iloczyn = $a * $b;
echo \"Iloczyn: $iloczyn
\";
$iloraz = $a / $b;
echo \"Iloraz: $iloraz
\";
$reszta = $a % $b;
echo \"Reszta z dzielenia: $reszta
\";
?>
Zapiszemy ten skrypt pod nazwą operatory1.php w katalogu lekcja1. A w przeglądarce wpiszemy adres {stala}http://localhost/lekcja1/operatory1.php{/stala}.
Arytmetyka w PHP potrafi czasami zaskakiwać. Spróbujemy zrobić coś takiego:
\";
?>
Spodziewaliśmy się informacji o błędzie, gdyż $imie nie jest cyfrą, zamiast tego otrzymaliśmy wynik 20. Dzieje się tak dlatego, że PHP podczas operacji arytmetycznych po napotkaniu napisu szuka w nim na początku cyfry (ignorując początkowe białe znaki, czyli spacje i znaki tabulacji). Jeśli zamiast cyfry napotka inny znak, traktuje taki ciąg jak wartość 0. Gdyby jednak napotkał cyfrę, wykorzysta ją do obliczeń (ignorując ewentualny napis znajdujący się po cyfrze):
\";
?>
Jeśli zapiszemy ten przykład w pliku pod nazwą operatory3.php, w katalogu lekcja1, a następnie w przeglądarce wpiszemy adres {stala}http://localhost/lekcja1/operatory3.php{/stala}, w przeglądarce otrzymamy wynik:
Owoce: 9