WstΩp

--------------------
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.