Podstawy PHP
Jak PHP współpracuje ze stroną WWW?
PHP jest językiem server-side, tj. pracuje po stronie serwera WWW. Przeciwieństwem są języki client-side pracujące po stronie przeglądarki użytkownika (np. JavaScript). Aby wykorzystywać go na własnej stronie, musisz upewnić się, że twój serwer obsługuje PHP. Zanim przejdziemy dalej, należy zrozumieć zasadę, na jakiej PHP generuje dynamiczne strony WWW.
Kiedy wpisujemy adres w przeglądarce internetowej, żądanie wyświetlenia strony kierowane jest do serwera HTTP zwanego także serwerem WWW. Jeśli stwierdzi na podstawie rozszerzenia pliku, że dany dokument zawiera kod PHP, serwer kieruje do jego interpretera żądanie przetworzenia podanego pliku. Interpreter wyszukuje w jego treści tzw. wstawki PHP wplecione w statyczny kod HTML i zastępuje je wynikiem ich wykonywania. Utworzony kod HTML jest zwracany serwerowi, a ten wysyła go z powrotem do internauty. PHP używany jest do dynamicznego (zależnego od różnych warunków) generowania kodu HTML - zawartości strony. Do przeglądarki dociera kod HTML a nie PHP. Jeśli mamy plik PHP o następującej treści:
To internauta zobaczy jedynie dokument o takiej treści:
Cały PHP zniknie, a na jego miejscu pojawi się utworzony przez niego kod HTML.
Dzięki pracy po stronie serwera, PHP idealnie nadaje się do tworzenia złożonych aplikacji zarządzających dużymi ilościami danych: forami dyskusyjnymi, systemami zarządzania treścią, sklepami internetowymi. Generują one odpowiedni kod HTML dla przeglądarek internautów, a w momencie, kiedy oni go przeglądają, PHP już zakończył nad nim swą pracę. Jest to bardzo istotne, ponieważ wszelkie dalsze reakcje na poczynania użytkownika należy albo pozostawić przeglądarce, albo obsłużyć je za pomocą języka JavaScript.
Historia projektu
Pierwsza wersja PHP, rozpowszechniana pod nazwą PHP/FI (Personal Home Page/Forms Interpreter), została stworzona przez Rasmusa Lerdorfa w roku 1994 jako zestaw skryptów Perla służący do monitorowania internautów odwiedzających jego witrynę. Gdy ruch stał się zbyt duży, przepisał je w języku C, dodając przy tym nowe opcje. Niedługo później ludzie zaczęli prosić go o możliwość użycia tych narzędzi na swoich stronach, zatem 8 czerwca 1995 roku autor udostępnił publicznie kod źródłowy (PHP Tools 1.0). Już kilka miesięcy później projekt przekształcił się w zalążek znanego obecnie języka programowania, gdy został połączony z innym narzędziem Rasmusa Lerdorfa - Form Interpreter, które dało drugi człon nazwy. W 1997 roku pojawiło się PHP/FI 2.0, posiadające wtedy kilka tysięcy aktywnych użytkowników na całym świecie oraz obsługujące 50 tys. domen. Co ciekawe, wersja ta spędziła większość "życia" na beta testach. Oficjalne wydanie było tylko jedno i ukazało się w listopadzie 1997 roku.
W 1997 roku projektem zainteresowali się dwaj izraelscy programiści: Zeev Suraski i Andi Gutmans. Odkryli oni, że PHP/FI ma zbyt małe możliwości na potrzeby aplikacji eCommerce, którą tworzyli na uniwersytecie. Zdecydowali wtedy, że przepiszą kod PHP całkowicie od nowa, korzystając z pomocy już istniejącej społeczności PHP. W czerwcu 1998 roku ogłosili PHP 3.0 jako następcę PHP/FI, którego dalszy rozwój został wtedy zatrzymany. Był to wielki krok naprzód. PHP 3.0 posiadało całkowicie nową architekturę, która znacznie zwiększała wydajność. Pojawiły się w niej zalążki programowania obiektowego, ale najważniejszą cechą aplikacji była jej modułowość. Użytkownicy mogli rozszerzać teraz funkcjonalność języka poprzez dodawanie nowych modułów.
Krótko po wydaniu PHP 3, w zimie 1998 Zeev Suraski oraz Andi Gutmans jeszcze raz zabrali się za przepisywanie kodu źródłowego PHP, korzystając z doświadczeń nabytych przy pracach nad poprzednią wersją. Za główne cele obrali poprawienie modułowości oraz wydajności złożonych aplikacji. Choć dotychczasowa wersja potrafiła sobie z nimi poradzić, nie była jednak stworzona do tego celu i przegrywała przez to z innymi rozwiązaniami.
W połowie roku 1999 ukazał się oficjalnie Zend Engine, nowy silnik języka skryptowego, wokół którego niedługo później zaczęto budować PHP 4. Jego nazwa to kompromisowe połączenie imion twórców projektu. Nowa, oparta o niego wersja PHP, ukazała się w maju 2000 roku. Tak jak poprzednio, był to potężny krok naprzód. Programiści mieli do dyspozycji teraz wiele nowych narzędzi, konstrukcji językowych oraz bezpieczniejszy system wejścia/wyjścia. Od strony administracyjnej pojawiło się oficjalne wsparcie dla wielu nowych serwerów. Przez cztery lata od chwili wydania ukazały się trzy kolejne edycje tej wersji oznaczone numerami: 4.1, 4.2 oraz 4.3. W każdej z nich odczuwalne było zwiększenie bezpieczeństwa, szybkości działania oraz możliwości. W 2004 roku obsługiwały one łącznie 20% wszystkich domen sieciowych.
W 2002 roku Zeev Suraski oraz Andi Gutmans ponownie rozpoczęli znaczącą modernizację silnika PHP mającą na celu dodanie do tego języka modelu obiektowego z prawdziwego zdarzenia. W lutym 2003 ukazała się pierwsza wersja alpha nowej wersji PHP oznaczonej numerem 5.0.0. Stabilna wersja ukazała się prawie półtora roku później, w lipcu 2004 roku. Nowości sprawiły, że PHP może konkurować teraz z innymi rozwiązaniami server-side, jak równy z równym. Pojawił się całkowicie nowy model programowania obiektowego, przez co niestety została utracona część kompatybilności z poprzednimi wersjami PHP w niektórych skryptach. Jest to spowodowane zmianą sposobu reprezentacji obiektów. Przebudowano także wiele modułów, w tym do obsługi XML'a i komunikacji z bazą danych, czyniąc je bardziej przyjaznymi dla programistów.
W połowie roku 2005 zaczęły pojawiać się oficjalne sygnały, że rozpoczęto wstępne prace nad PHP 6. Obecnie publicznie dostępne są codzienne snapshoty rozwojowego repozytorium kodu źródłowego, które można ściągnąć i przetestować. Głównym celem jest dalsze dążenie do ujednolicenia projektu, wprowadzenia dalszych możliwości wymaganych przez złożone projekty (m.in. pełne wsparcie unicode czy system cache'owania kodu). Usuwane są też kolejne archaiczne rozwiązania pochodzące jeszcze z czasów PHP/FI oraz PHP3, co w przypadku najstarszych skryptów ponownie spowoduje problemy z kompatybilnością.
XAMPP to jeden z wielu zestawów umożliwiających uruchomienie serwera na komputerze. Jest jednym z lepszych i oferuje obsługę PHP oraz zawiera bazę MySQL. W XAMPPie znajdziemy: Apache, MySQL, PHP, Perl, FileZilla FTP Server, phpMyAdmin, OpenSSL, Freetype itd.
Instalacja - windows
- Ściągnij instalator XAMPPa (plik exe)
- Zainstaluj serwer. Po instalacji pojawi się okno umożliwiajace zarządzanie XAMPPem. Wystarczy że uruchomimy serwer Apache i bazę MySQL
- Uruchom przeglądarkę i wpisz adres https://localhost/
Instalacja - Linuks
- Ściągnij XAMPPa dla linuksa
- Rozpakuj go do katalogu opt/
- Uruchamianie i zatrzymywanie poprzez konsolę (jako root):
mod_rewrite
Otwórz apache/conf/httpd.conf i znajdź:
i usuń #. Uruchom (ponownie) serwer.
Obsługa
- Po uruchomieniu wyżej wymienionej "strony" pojawi się strona wejściowa XAMPPa. Wybieramy jeden z języków (angielski np.)
- Pojawi się panel kontrolny. Mamy tu dostęp m.in. do phpMyadmina.
Jak i gdzie umieścić własną stronę itp.
W katalogu htdocs znajdują się pliki, które mają być wyświetlane przez serwer. Jest tam już zestaw dokumentacja + inne XAMPPa więc najlepiej stworzyć sobie jakiś katalog np. "html" i do niego wrzucać pliki naszej strony. Adres do pliku index.html umieszczonego w tym katalogu to https://localhost/html/index.html
Bazy danych MySQL
W phpmyadminie możemy tworzyć bazy. Skrypty pytają się również o nazwę użytkownika bazy i hasło. W XAMPPie domyślnie nazwa użytkownika to "root" a hasła nie ma (nic nie wpisujemy w pole hasło)
Problem z polskimi znakami!
Jeżeli na stronach nie wyświetlają się poprawnie polskie znaki to otwórz plik apache/conf/httpd.conf (etc/httpd.conf dla Linuksa) i znajdź linię gdzie jest:
I ją usuń. Jeżeli XAMPP działa zatrzymaj go i uruchom ponownie. (nie edytuj przypadkiem komentarza zaczynającego się od #)
ERROR Reporting
Przy korzystaniu z niektórych skryptów mogą pojawić się ostrzeżenia "NOTICE". Jest to związane z dokładnym raportowaniem błędów. Otwórz conf/php.ini (etc/php.ini dla Linuksa) i znajdź:
i zamień na:
Jeżeli XAMPP działa zatrzymaj go i uruchom ponownie. (nie edytuj przypadkiem komentarza zaczynającego się od ; )
Pierwszy skrypt w PHP
Wprowadzenie
Jak wspomnieliśmy wcześniej, skrypty PHP możemy mieszać ze zwykłym kodem HTML. Kod naszych algorytmów zamykany jest wewnątrz specjalnych wstawek wyłapywanych przez interpreter oraz zmienianych później na wygenerowany tam kod. Tak też zrobimy w naszym pierwszym skrypcie, który tradycyjnie wyświetli na ekranie przeglądarki napis "Witaj Świecie!".
W powyższym przykładzie widzimy skrypt PHP osadzony za pomocą znaczników: