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.