WstΩp
PHP jest nowoczesnym jΩzykiem umo┐liwiaj▒cym tworzenie dynamicznych stron WWW. Moim zdaniem jest najlepszym tego typu narzΩdziem. DziΩki niemu nasze strony mog▒ byµ znacznie ciekawsze, ┐ywsze... Dodatkowym atutem jego jest prostota. PHP jest jΩzykiem bardzo │atwym (choµ to pojΩcie wzglΩdne), szczeg≤lnie dla programuj▒cych ju┐ w C++, czy PERL-u. Mimo prostoty, ma niebywa│▒ liczbΩ funkcji, a tym samym mo┐liwo╢ci.
Podstawow▒ wad▒ jest to, ┐e istnieje stosunkowo ma│o serwer≤w (darmowych) umo┐liwiaj▒cych u┐ywanie PHP na naszych stronach. WiΩkszo╢µ p│atnych us│ugodawc≤w posiada tΩ mo┐liwo╢µ, jednak darmowe serwery z PHP s▒ jak na razie rzadko╢ci▒. Miejmy nadziejΩ, ┐e szybko siΩ to zmieni.
Naszym pierwszym zadaniem jest znalezienie serwera WWW, na kt≤rym mo┐na uruchamiaµ skrypty. Je╢li znasz taki serwer mail me. Jak na razie znam tylko kilka:
Jak tylko dostane od Was jakie╢ zg│oszenie natychmiast o tym tutaj napisze :)
Drug▒ wa┐n▒ spraw▒ jest przygotowanie sobie ╢rodowiska do pracy ;) tzn. stworzenie sobie w domu takiego ma│ego serwera, na kt≤rym bΩdziemy mogli uruchamiaµ nasze skrypty i je testowaµ.
Nie zamieszczam tutaj dodatkowych artyku│≤w na temat instalacji i konfiguracji takiego serwera, bo jest to bardzo proste ;) Om≤wiΩ instalacjΩ w Windows w kilku zdaniach. Po pierwsze, nale┐y ╢ci▒gn▒µ sobie serwer Apache-a i go zainstalowaµ (proponuje w katalogu c:\usr\apache). Kolejnym krokiem jest zainstalowanie PHP (katalog: c:\usr\php). Teraz konfiguracja. Edytujemy plik access.conf (powinien byµ w katalogi c:\usr\apache\conf). Mo┐e on wygl▒daµ tak:
<Directory "c:/usr/katalog_strony/www"> Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All order allow,deny allow from all </Directory>
Modyfikujemy r≤wnie┐ plik httpd.conf. Minimalnie wygl▒da on tak:
ServerType standalone Port 80 HostnameLookups off ErrorLog logs/error.log LogLevel warn LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common LogFormat "%{Referer}i -> %U" referer LogFormat "%{User-agent}i" agent CustomLog logs/access.log common PidFile logs/httpd.pid ScoreBoardFile logs/apache_status ServerAdmin adres@admina.pl ServerRoot "c:/usr/apache" DocumentRoot "c:/usr/katalog_strony/www" ServerName 127.0.0.1 ServerSignature on UseCanonicalName on Timeout 300 KeepAlive On KeepAliveTimeout 15 MaxRequestsPerChild 0 ThreadsPerChild 50 ScriptAlias /php/ "c:/usr/php/" Action application/x-httpd-php "/php/php.exe" AddType application/x-httpd-php .php .php3 .phtml .htm <VirtualHost 127.0.0.1> ServerName karolek DocumentRoot /usr/binboy/www </VirtualHost>
Powinno ju┐ dzia│aµ :) Adres naszej strony: http://127.0.0.1, lub http://localhost
Mamy ju┐ wszystko ustawione... przejd╝my wiΩc do om≤wienia podstaw PHP:
Podstawy
W zale┐no╢ci jak skonfigurujemy nasz serwer przez PHP "przep│ywaj▒" odpowiednie dokumenty (tzn. o odpowiednim rozszerzeniu). Standardowo jest ustawione tak, ┐e skrypty PHP znajduj▒ siΩ w dokumentach o rozszerzeniu php3. Mo┐na jednak ustawiµ tak, by istnia│a mo┐liwo╢µ umieszczania skrypt≤w w ka┐dym dokumencie (nawet HTML), tak jest w│a╢nie na tej stronie :).
Skrypty PHP zamieszczamy pomiΩdzy znacznikami <? i ?>. Mo┐na r≤wnie┐ wstawiµ skrypt pomiΩdzy <?php i ?> lub zastosowaµ znacznik SCRIPT, np.: <script language="php"> tre╢µ </script>. To kt≤rej metody u┐yjemy, zale┐y od nas samych i naszych upodoba±. Ja bΩdΩ u┐ywa│ pierwszego zapisu, gdy┐.. ju┐ siΩ przyzwyczai│em ;)
PHP dzia│a na tej zasadzie, ┐e kiedy dostaje do analizy plik, to przesy│a do przegl▒darki w niezmienionej formie wszystko, co nie znajduje siΩ pomiΩdzy wy┐ej opisanymi znacznikami. W tych miejscach wykonywany jest ≤w kod i je╢li on zwraca jak▒╢ warto╢µ, tzn. chce co╢ wy╢wietliµ, to jest to r≤wnie┐ wysy│ane do przegl▒darki (ale nie kod). DziΩki temu strony kt≤re do nas "przychodz▒", tzn. te kt≤re ogl▒damy, nie zawieraj▒ kodu PHP. Nikt wiΩc nie wie, co w│a╢ciwie siΩ sta│o ;). Wielk▒ zalet▒ tego jest to, i┐ skrypt mo┐e sk│adaµ siΩ nawet z 1000 linii, a i tak czas przesy│ania dokumentu siΩ nie wyd│u┐y (tyle tylko, co jego wykonanie). Dodatkowo, skrypt wykonywany jest po stronie serwera, a wiΩc nie ma tutaj wp│ywu to, jakim programem ogl▒damy nasz▒ stronΩ.
Pewnie nie bΩdziemy pisaµ skrypt≤w d│ugich na tysi▒ce linii, ale i tak po pewnym czasie bΩdzie mo┐na siΩ pogubiµ w kodzie. Z pomoc▒ nam przychodz▒ komentarze. O tym, ┐e s▒ one tak wa┐ne ╢wiadczy to, ┐e wystΩpuj▒ chyba w ka┐dym jΩzyku programowania ;) Komentarz jest to tekst, kt≤ry wstawiamy do naszego skryptu (programu) i kt≤ry nie jest wykonywany. Jest to nasz w│asny opis! W PHP mamy do dyspozycji kilka metod wstawiania komentarzy. Wszystko co siΩ znajdujΩ pomiΩdzy /* i */ jest ignorowane. R≤wnie┐ wszystko co jest po prawej stronie od znak≤w // lub # nie jest interpretowane. Jest wiΩc bardzo podobnie jak w C++.
Pierwszy program
Wystarczaj▒co teorii jak na pierwszy raz ;) Napiszmy na pocz▒tek bardzo prosty skrypt:
<html>
<head>
<title>Pierwszy program</title>
</head>
<body>
Wit@my... to jest linijka napisana "normalnie" przy uzyciu HTML-a<br>
<?
echo "A to jest linijka napisana przy uzyciu PHP<br>";
?>
</body>
</html>
Jak to dzia│a? Co tu t│umaczyµ... polecenie echo s│u┐y do wy╢wietlania napis≤w. Tekst podajemy w cudzys│owach (lub apostrofach). Trzeba tylko wspomnieµ, ┐e w PHP podobnie jak w C/C++ i Pascalu ka┐da (prawie) linijka kodu zako±czona jest ╢rednikiem. Godnym uwagi jest r≤wnie┐ fakt, i┐ wy╢wietlany przez PHP tekst wΩdruje do przegl▒darki i jest jeszcze przez ni▒ interpretowany (jak ka┐dy inny tekst w pliku HTML). Dlatego, przy poleceniu echo i wszystkich innych tego typu, mo┐na u┐ywaµ znacznik≤w HTML-a (tak jak w przyk│adzie... u┐yto znacznik <br>).
W PHP rozr≤┐niane s▒ ma│e i wielkie litery, jednak nie zawsze. Odgrywaj▒ znacz▒c▒ rolΩ we wszystkich zmiennych, sta│ych i funkcjach przez nas stworzonych. Jednak standardowe funkcje jΩzyka (np. echo, czy print) mo┐na pisaµ dowolnie - zar≤wno ma│ymi, jak i wielkimi literami.