Co to jest PHP
PHP jest jÄ™zykiem skryptowym sÅ‚użącym do rozszerzania możliwoÅ›ci stron internetowych. Jego skÅ‚adnia jest bardzo podobna do popularnych jÄ™zyków programowania C/C++, lecz jest bardzo uproszczona – programista PHP zazwyczaj nie musi przejmować siÄ™ poprawnoÅ›ciÄ… typów zmiennych, przydzielaniem dla nich pamiÄ™ci itp. Dodatkowo wbudowana obsÅ‚uga wielu popularnych baz danych uÅ‚atwia twórcy operacje na tych bazach. DziÄ™ki poÅ‚Ä…czeniu z bibliotekÄ… GD możliwe jest także dynamiczne tworzenie obrazków GIF (starsze wersje GD) lub PNG (nowsze wersje).
Osadzanie 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.
Jeśli zwykłemu plikowi HTML nadamy rozszerzenie .php, to zostanie on prawidłowo wyświetlony, mimo że nie jest to skrypt PHP. Dzieje się tak dlatego, że parser PHP przetwarzając stronę ma 2 tryby pracy: HTML, gdzie cała treść jest wyświetlana, bez przetwarzania, i PHP, gdzie treść jest traktowana jako skrypt do przetworzenia. Do określenia w pliku co jest kodem HTML a co PHP służą specjalne znaczniki. Początkowo parser jest w trybie HTML. Aby przejść do trybu PHP można użyć jednego z czterech znaczników:
-
<? echo ("to jest najprostsza metoda, podobna do SGML'a"); ?>
-
<?php echo("jeśli serwujesz pliki XML, użyj tej metody"); ?>
-
<script language="php"> echo ("niektóre edytory (np. FrontPage) nie lubią przetwarzania instrukcji"); </script>
-
<% echo ("Możesz też użyć metody podobnej do tej z ASP"); %> <%= $variable; # To jest skrót dla "<% echo ..." %>
W powyższych przykÅ‚adach użyta jest niby-funkcja echo. Niby-funkcja, ponieważ dla wiÄ™kszoÅ›ci normalnych funkcji parametry trzeba podawać w nawiasach, a w przypadku funkcji echo można je pominąć. „echo” jest po prostu elementem skÅ‚adni jÄ™zyka. Jak siÄ™ można Å‚atwo domyÅ›lić, sÅ‚uży ona do wysyÅ‚ania tekstu podanego jako parametr do przeglÄ…darki użytkownika.
Po przeczytaniu powyższego fragmentu każdy powinien być już gotowy do napisania programu, jaki każda osoba pisze zaraz po wstÄ™pnym zapoznaniu siÄ™ z nowym jÄ™zykiem programowania – Hello World!. W przypadku PHP jest to zadanie uproszczone do minimum.
Przykład 1.1. Skrypt Hello World!
<?php echo 'Hello World!'; ?>
Po zapisaniu tego pliku z odpowiednim rozszerzeniem i umieszczeniu go odpowiednim miejscu (czyli w katalogu z którego bÄ™dzie dostÄ™p bÄ™dzie miaÅ‚ serwer WWW). Po wejÅ›ciu na tÄ™ stronÄ™ z przeglÄ…darki WWW w okienku powinno być widać tylko napis „Hello World!” (bez cudzysÅ‚owów). Jedna uwaga: polecenie echo nie wysyÅ‚a znaku koÅ„ca linii, wiÄ™c jeÅ›li chcesz, aby po ciÄ…gu znaków (albo w którymkolwiek miejscu tego ciÄ…gu) koÅ„czyÅ‚a siÄ™ linia, w tym miejscu trzeba wstawić '\n’.
Błędy i debugowanie
Parser PHP podczas wykonywania skryptu sprawdza jego poprawność. JeÅ›li coÅ› siÄ™ nie zgadza, zostaniemy o tym poinformowani. Skrypt bÄ™dzie jednak wykonany do miejsca, w którym pojawiÅ‚ siÄ™ bÅ‚Ä…d. Przy komunikacie o bÅ‚Ä™dach podana zostanie informacja o typie bÅ‚Ä™du, pliku w którym ten bÅ‚Ä…d zaszedÅ‚ oraz linii zawierajÄ…cej bÅ‚Ä…d. Najczęściej sÄ… to bÅ‚Ä™dy skÅ‚adniowe – brak Å›rednika na koÅ„cu linii, niedomkniÄ™tych nawiasach (bardzo czÄ™sty bÅ‚Ä…d przy zÅ‚ożonych instrukcjach warunkowych), cudzysÅ‚owach lub nawiasach klamrowych koÅ„czÄ…cych blok danych (przy instrukcjach warunkowych, pÄ™tlach). BÅ‚Ä™dy przy braku zamykajÄ…cych nawiasów klamrowych Å‚atwo można rozpoznać, ponieważ numer linii zawierajÄ…cej bÅ‚Ä…d jest o jeden wiÄ™ksza od liczby linii w pliku.
PHP w wersji czwartej nie posiada jako-takiego debuggera. Wersja trzecia miała możliwość debugowania skryptów po ustawieniu odpowiednich opcji w konfiguracji PHP, który będzie się łączył z odpowiednim portem podanym w konfiguracji, na który będą przesyłane dane o błędach. Niektóre edytory wspomagające tworzenie skryptów PHP (jak np. Quanta+ pod Linuksa) posiadają wbudowaną obsługę debuggera. Jest to jednak metoda skomplikowana (więcej o niej w dokumentacji do PHP) i wymaga interwencji administratora serwera (sprawa jest łatwiejsza jeśli programista jest administratorem). Istnieje metoda dużo prostsza. Po prostu w kluczowych miejscach skryptu (zazwyczaj tych, w których skrypt działa nieprawidłowo lub niezgodnie z zamierzeniami) należy wyświetlić interesujące nas zmienne za pomocą polecenia echo. Można też skorzystać z instrukcji warunkowych, ale o tym w dalszej części kursu.
Na początek warto jest zapoznać się z informacjami, które wyświetlą się po użyciu funkcji phpinfo(). Funkcja ta wyświetla wszystkie informacje o konfiguracji PHP (bardzo przydatne przy poszukiwaniu gdzie powinien znajdować się plik php.ini) oraz wszystkie zmienne środowiskowe, serwera oraz przekazane metodami GET, POST, COOKIE oraz sesyjnymi.