Artur Świderek
as@scrypty.pl
2001-12-01
Spis treści
PHP A SERWER WWWPHP może być zainstalowany w dwojaki sposób. Pierwszy, najbardziej popularny, to instalacja jako moduł serwera, np. Apache'a. Wówczas skrypt PHP jest wykonywany na prawach użytkownika, który jest właścicielem Apache'a - zwykle nobody. Drugi, rzadziej stosowany sposób to instalacja PHP jako programu CGI. Wówczas skrypty PHP umieszczane są w katalogu ze skryptami CGI (najczęściej jest to katalog cgi-bin). Należy również pamiętać, taki skrypt jest pełnoprawnym programem CGI (Common ateway Interface) i musi mieć odpowiednie uprawnienia (755, czyli -rwxr-xr-x) oraz w pierwszej linii pliku ścieżkę do interpretera języka.
Instalacja
Aby móc testować skrypty musimy mieć zainstalowany serwer www i interpreter PHP. Pliki instalacyjne do obydwu programów można znaleźć na stronie PHP.pl w dziale download. Po ściągnięciu instalujemy Apache'a w domyślnym katalogu, potem w zależności od wersji interpretera PHP rozpakowywujemy go do katalogu c:\php albo instalujemy do tegoż katalogu. Podczas instalacji zaznaczamy wszystkie możliwe rozszerzenia PHP, tj. .php, .php3 i .phtml. Jeżeli miałeś wersję spakowaną to musisz jeszcze zamienić nazwę pliku c:\php\php.ini-dist na c:\php\php.ini. Wyżej wymieniony plik jest plikiem konfiguracyjnym interpretera, jednak do zwykłego korzystania z interpretera nie jest potrzebna specjalna konfiguracji, dlatego nie będziemy nic w nim zmieniać. Po instalacji serwera i interpretera możesz spróbować uruchomić serwer. Powinien albo krótko po uruchomieniu wyłączyć się, albo po uruchomieniu przeglądarki i próbie wejścia na adres http://127.0.0.1/ powinien wyświetlić się błąd "Strony nie znaleziono" albo coś w tym stylu. Aby serwer działał musimy go odpowiednio skonfigurować.
Konfiguracja
Plikiem konfiguracyjnym Apache'a, który będziemy zmieniać jest httpd.conf, znajdujący się w katalogu conf w katalogu gdzie zainstalowano Apache'a (domyślnie c:\Program Files\Apache Group\Apache\). Otwórz go pod Notatnikiem. Wyszukaj w nim linii z ServerName. Zamień ją na ServerName 127.0.0.1 (może być także localhost). Jeżeli przed ServerName występuje znaczek # (haszyk) to usuń go. W ten sposób ustaliliśmy nazwę serwera, przez którą będziemy mogli wywoływać nasze strony i skrypty. Teraz można uruchomić Apache'a i sprawdzić czy działa. Uruchom Apache.exe, potem przeglądarkę i wejdź na strone http://127.0.0.1/. Powinna pojawić się strona powitalna Apache'a (jeżeli masz starszą wersję Apache'a może wyświetlić się spis plików w katalogu htdocs).Teraz dodamy kilka rozszerzeń indexu. Standardowo po wywołaniu http://127.0.0.1/ wywoływana jest strona http://127.0.0.1/index.html. Jeżeli takowej nie ma pokazuje się spis zawartości katalogu. Dzięki tej linijce, którą za chwilę zamienimy, będzie (jeżeli nie ma index.html) sprawdzało czy istnieją i uruchamiały index.php i index.php3. Znajdź w pliku konfiguracyjnym linijkę DirectoryIndex. Jeżeli występuje przed nią znak # usuń go. Teraz zamień tę linię na DirectoryIndex index.html index.php index.php3. Serwer sprawdza czy index istnieje w kolejności takiej jak zapisane jest to w pliku konfiguracyjnym, czyli u nas to będzie wyglądało tak:
· Serwer sprawdza czy istnieje index.html
· Jeżeli istnieje to wyświetla jego zawartość
· Jeśli nie istnieje to sprawdza czy istnieje index.php
· Jeżeli istnieje to wykonuje skrypt i wyświetla wyniki
· Jeśli nie sprawdza czy istnieje index.php3
· Jeżeli tak to wykonuje skrypt i wyświetla jego wyniki
· Jeśli nie pokazuje zawartość katalogu htdocs
Teraz czas na dodanie trzech linii do pliku httpd.conf (czyli konfiguracyjnego), informujących serwer www o ścieżce dostępu do interpretera PHP i jego rozszerzeniach. Oto te trzy linie:ScriptAlias /php/ "c:/php/"AddType application/x-httpd-php3 .php3 .php .phtmlAction application/x-httpd-php3 "/php/php.exe"Można je wkleić w każdym miejscu pliku. Od tej pory można się już bawić w pisanie skryptów i je testować
Używanie
Wszystkie pliki ze stronami i skryptami przechowywane są w katalogu htdocs w katalogu domyślnym Apache'a. Aby uruchomić skrypt musisz przegrać go do tego katalogu, uruchomić Apache'a i w pasku adresu wpisac http://127.0.0.1/url gdzie url to adres pliku wewnątrz, np.: http://127.0.0.1/katalog/skrypt.php gdzie katalog to folder podrzędny do htdocs (czyli domyślnie adres do tego katalogu to c:\Program Files\Apache Group\Apache\htdocs\katalog), a skrypt.php to nazwa skryptu razem z rozszerzeniem. Jeżeli w katalogu htdocs mamy całą witrynę to możemy ją uruchomić z adresu http://127.0.0.1/katalog, gdzie katalog to folder w którym znajduje się cała witryna. I to wszystko!
ROZSZERZENIA PLIKÓW PHPPliki stron WWW zawierających skrypty PHP mogą mieć różne rozszerzenia w zależności od konfiguracji serwera. Najczęściej stosowane to: *.php, *.php3, *.phtml. Jeżeli chcesz, aby pliki PHP miały także inne rozszerzenia, musisz w pliku httpd.conf (lub srm.conf) wpisać w sekcji AddType następującą linię:
AddType application/x-httpd-php .<nowe rozszerzenie>
a następnie, aby plik index z nowym rozszerzeniem był traktowany jako domyślny plik katalogu, w sekcji DirectoryIndex dopisać:
DirectoryIndex index.<nowe rozszerzenie>
UMIESZCZANIE SKRYPTÓW PHP W KODZIE HTMLSkrypty PHP (obecnie Hypertext Preprocessor) wykonywane są po stronie serwera, ale umieszczane bezpośrednio w kodzie strony. Serwer interpretuje kod PHP i przekazuje przeglądarce stronę WWW bez wstawek PHP. Kod PHP umieszczany jest na stronie za pomocą następujących znaczników:
· <?php i ?>
· <? i ?>
· <script language=php> i </script>
· <% i %>
Drugi typ znaczników, nazywany Short Tags (krótkie znaczniki), dostępny jest, jeżli w pliku konfiguracyjnym PHP (c:\apache\php\php.ini w win32) włączona jest opcja short_open_tag:
short_open_tag = On
lub po wywołaniu funkcji short_tags().Czwarty typ znaczników pochodzi z języka ASP i nie jest dostępny w standardowej konfiguracji PHP. Aby go uaktywnić należy włączyć następującą opcję:
asp_tags = On
PRZYKŁADOWY SKRYPT PHPW celu przedstawienia podstawowych cech PHP zostanie zaprezentowany i omówiony przykładowy skrypt odpowiedzialny za wyświetlenie na stronie aktualnej daty.
<html><head><title>Skrypt PHP</title></head><body>/* skrypt PHPdrukowanie aktualnej daty */$aktualna_data = date("d-m-Y"); // pobieramy datę do zmiennejecho("Dziś jest $aktualna_data"); // drukujemy linię#koniec drukowania aktualnej daty </body></html>
Wynikiem działania tego skryptu będzie:
<html><head><title>Skrypt PHP</title></head><body>Dziś jest: 27-07-2001</body></html>
Zwrócony tekst zastąpi znaczniki skryptu (<? i ?>) wraz z umieszczonym między nimi kodem i komentarzami. Najważniejsze elementy językaW powyższym przykładzie pobieramy do zmiennej aktualną datę. Jak widać w PHP zmiennych nie trzeba deklarować, a one same rozpoczynają się znakiem $.Zapis date("d-m-Y") oznacza wywołanie funkcji date(), która zwraca aktualną datę w ustalonym formacie (dzień-miesiąc-rok).Funkcja echo() odpowiedzialna jest za zwracanie tekstu podanego w nawiasie do przeglądarki. Zauważ, że jako argument funkcji został przekazany tekst umieszczony w podwójnych cudzysłowach ("), w którym znajduje się zmienna $aktualna_data. Ten rodzaj cudzysłowu mówi parserowi PHP, że ma przeszukać tekst w poszukiwaniu zmiennych (rozpoczynających się od znaku $) i zamienić je na ich wartości. Gdybyś zastosował pojedyncze cudzysłowy ('), zwrócony tekst przybrałby następującą postać:
<html><head><title>Skrypt PHP</title></head><body>Dziś jest: $aktualna_data</body></html>
Widać, że teksty umieszczone w takich cudzysłowach nie sa przeszukiwane w celu znalezienia zmiennych i zostają wydrukowane dokładnie tak, jak zostały zapisane.KomentarzeW powyższym przykładzie użyto trzech rodzajów komentarzy, które służą do oisywania fragmentów kodu i nie są interpretowane przez parser PHP i wysyłane do przeglądarki.W PHP dostępne są komentarze w stylu języka C, C++ oraz Unix shell:
· // komentarz jednoliniowy
· /* komentarzwieloliniowy */
· # komentarz jednoliniowy w stylu Unix-shell
Komentarze // i # mogą być używane w oddzielnych liniach kodu:
<?// drukowanie tekstuecho("jakiś tekst");# drukowanie tekstuecho("jakiś tekst");?>
oraz bezpośrednio po linii kodu zakończonej średnikiem (;):
<?echo("jakiś tekst"); // drukowanie tekstuecho("jakiś tekst"); # drukowanie tekstu?>
Zasady notacjiPodstawowa notacja języka PHP opiera się na następujących zasadach:
· kończenia każdej linii kodu znakiem ;,
· umieszczania przed nazwami zmiennych znaku $,
· zapisywania w jednej linijce kodu jednej instrukcji lub wyrażenia,
· nie rozróżniania wielkości liter w nazwach funkcji,
· rozróżniania wielkości liter w nazwach zmiennych.
W celu zwiększenia czytelności zapisu można stosować wcięcia i komentarze.
TYPY ZMIENNYCHW PHP nie musisz deklarować nazwy zmiennej ani jej typu przed użyciem. W trakcie wykonywania skryptu typ określi samo PHP w zależności od sytuacji w jakiej zmienna została zastosowana.Jeżeli jest dla Ciebie istotne, aby dana zmienna była określonego typu i nie chcesz, żeby decydował o tym parser PHP, możesdz użyć do ustalenia typu zmiennej funkcji settype(). Zmienna zostanie wtedy przekonwertowana na wskazany typ. Jezeli zaś chcesz sprawdzić typ zmiennej, możesz użyć funkcji gettype() do jego odczytania.Liczby całkowiteLiczby całkowite jako typ danych w PHP to dodatnie i ujemne liczby dziesiętne, liczby ósemkowe i szesnastkowe. Ich deklaracja wygląda następująco:
<?$zmienna = 19; // liczba dziesiętna dodatnia$zmienna = -5; // liczba dziesiętna ujemna$zmienna = 0145; // liczba ósemkowa (w systemie dziesiętnym 101)$zmienna = 0x19; // liczba szesnastkowa (w systemie dziesiętnym 25)?>
Liczby zmiennoprzecinkoweLiczby zmiennoprzecinkowe zawierają część dziesiętną. W PHP zapisuje się je w sposób następujący:
<?$zmienna = 1.234;$zmienna = 1.2e3;?>
Łańcuchy znakówŁańcuchy znaków przechowują różnego rodzaju teksty. Są one umieszczane w cudzysłowach pojedynczych (') lub w podwójnych ("). Tylko w tej drugiej sytuacji tekst zostanie przeszukany w celu znalezienia zmiennych. Jeżeli natomiast umieścisz tekst w cudzysłowach pochylonych (`), to zostanie on potraktowany przez parser PHP jako polecenie zewnętrzne, które nalezy wykonać.
<?# deklaracja łańcucha$string = "tekst łańcucha znaków";# dodanie do zmiennej $string nowego łańcucha$string = $string . " dodany łańcuch";# przypisanie do zmiennej $string wartości 'pozycja 17'$liczba = 17;$string = "Pozycja: $liczba";# pobranie pierwszej litery tekstu$string = "dowolny tekst";...
megazynek