PHP/Pierwszy skrypt
Pierwszy skrypt
[edytuj]W tym rozdziale napiszemy pierwszy skrypt PHP.
Skrypt PHP
[edytuj]Język PHP umożliwia zagnieżdżanie skryptów wykonywanych po stronie serwera.
Ćwiczenie
Witaj Świecie <?php echo 2*2; ?> Następnie uruchom go w przeglądarce www, z poziomu serwera (np. Wybierz w przeglądarce opcję podglądu źródła i porównaj źródło otrzymane przez przeglądarkę z oryginalnym plikiem. |
Przeglądarka otrzymuje tylko już przetworzony kod, w tym przypadku <? echo 2*2; ?>
zostało zamienione na 4
. O szczegółach tej instrukcji - w dalszej części podręcznika.
Interpreter PHP rozpoznaje kod do przetworzenia po znakach <?php
i ?>
. Każdy kod między nimi jest programem PHP.
Na początku będziesz musiał poznać instrukcję echo
, która wysyła tekst do przeglądarki:
<?php
echo 42;
?>
Funkcja ta została omówiona tutaj, ponieważ jej znajomość przydaje się do nauki zmiennych i wyrażeń; bardziej szczegółowo zostanie to omówione w kolejnych rozdziałach.
Konsola
[edytuj]Możemy uruchamiać skrypty z linii poleceń (CLI)
Polecenia :
php 1.php
uruchamia skrypt 1.php
Polecenie :
php -a
uruchamia tryb interaktywny:
Interactive mode enabled
wprowadzamy proste polecenie :
<?php echo "hi!"; ?>
i kończymy CTRL-D.
Wynik :
Parse error: syntax error, unexpected '<' in php shell code on line 1
Próbujemy :
echo "hi!";
Wynik :
hi!
Sprawdzanie wersji php:
php -v
przykładowy wynik :
PHP 5.5.9-1ubuntu4.14 (cli) (built: Oct 28 2015 01:34:46) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.5.0, Copyright (c) 1998-2014 Zend Technologies with Zend OPcache v7.0.3, Copyright (c) 1999-2014, by Zend Technologies
Skrypt PHP wewnątrz dokumentu HTML
[edytuj]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 kod. Tak też zrobimy w naszym pierwszym skrypcie, który tradycyjnie wyświetli na ekranie przeglądarki napis "Hello world!".
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Pierwszy skrypt PHP</title>
</head>
<body>
<?php
echo 'Hello world!';
?>
</body>
</html>
W powyższym przykładzie widzimy skrypt PHP osadzony za pomocą znaczników <?php oraz ?> w zwyczajnym kodzie HTML, który w następnych przykładach będziemy już pomijać, aby nie marnować miejsca. Wewnątrz mamy jedną linijkę:
echo 'Hello world!';
Nakazuje ona wyświetlenie tekstu "Hello world!" w przeglądarce. Tekst do wyświetlenia ograniczyliśmy apostrofami. Średnik na końcu informuje o zakończeniu komendy. Możemy rozbić to na kilka linijek, ale dla PHP nie będzie to miało większego znaczenia - końcem komendy jest właśnie średnik.
<?php
echo
'Hello world!';
?>
Przejście do nowej linii poza apostrofami jest jednym z tzw. białych znaków ignorowanych przez interpreter. Innymi są spacja oraz tabulacja. Między tekstem, a komendą echo możemy wstawić niezliczoną liczbę tabulatorów i zejść do nowej linii, ale nie zmieni to w żaden sposób tego, jak PHP wykona nasz skrypt, gdyż znaki te zostaną zignorowane.
W skrypcie możemy umieścić więcej wyrażeń, oczywiście odseparowanych średnikami:
<?php
echo 'To jest tekst 1';
echo 'To jest tekst 2';
echo 'A to jest tekst 3';
?>
Zauważ, że choć w skrypcie mamy trzy komendy wyświetlenia trzech tekstów, przeglądarka wyświetli je nam w jednej linijce. Jest tak dlatego, że nowa linia oznaczana jest specjalnym znacznikiem HTML, którego tam nie umieściliśmy. Oto poprawiona wersja skryptu:
<?php
echo 'To jest tekst 1<br>';
echo 'To jest tekst 2<br>';
echo 'A to jest tekst 3<br>';
?>
Mieszanie kodu PHP z HTML-em spotykane jest najczęściej jedynie w prostych skryptach. W złożonych aplikacjach znacznie utrudnia jakiekolwiek modyfikacje wyglądu. W dalszych rozdziałach tego podręcznika nauczymy się korzystać z szablonów, które pomogą nam całkowicie oddzielić jedno od drugiego, lecz na razie wszystko będzie wymieszane. |
Komentarze
[edytuj]Kiedy twoje skrypty staną się bardziej rozbudowane, w kodzie przyda się pewna organizacja. Pomogą tu z pewnością komentarze służące do opisywania, co robi dana część algorytmu, jak działa, jakie ma wymagania itd. Mogą także pomóc w usystematyzowaniu całości lub też zamieszczeniu informacji o autorze oraz prawach autorskich. Komentarz jest całkowicie ignorowany przez interpreter PHP i nie wpływa na wynik jego działania.
Istnieją trzy rodzaje komentarzy:
<?php
/*
komentarz wieloliniowy
może być rozbijany na wiele linijek.
Cały ten tekst jest ignorowany przez interpreter
*/
// to jest komentarz jednoliniowy - obowiązuje do końca danej linijki
# to jest jeszcze jeden komentarz jednoliniowy
?>
Oto przykładowe zastosowanie komentarzy:
<?php
/*
* Generator miniaturek obrazków
* Wersja: 1.0
* Autor: Adam Kowalski (adres@example.com)
* Licencja: GNU GPL
*
* Użycie: tu opis użycia...
*/
// początek generowania obrazka
echo 'Tu są jakieś komendy';
echo 'Dużo komend...';
// zmniejszanie
echo 'Tu obrazek się zmniejsza';
// wysyłanie wyniku
echo 'Tu wysyłamy obrazek do przeglądarki';
?>
Cały kod został opisany i dzięki temu nawet po wielu miesiącach autor będzie wiedział, co do czego służy. Komentarze przydają się przy zbiorowych pracach nad projektem. Można w nich umieszczać informacje, co należy w danym fragmencie poprawić albo jak on funkcjonuje. W procesie usuwania błędów (debugowania) komentarzy można używać do chwilowego wyłączania kawałków kodu, aby zobaczyć, czy to przypadkiem one nie powodują problemu oraz jak aplikacja radzi sobie bez nich. Stosowanie komentarzy należy do dobrych praktyk programistycznych i nigdy nie należy o nich zapominać.
Znaczniki wstawek PHP
[edytuj]Oficjalnymi znacznikami rozpoczynającymi i kończącymi kod PHP są <?php ... ?>
, jednak wciąż można spotkać starszą formę <? ... ?>
. Nie zalecamy jej stosowania, ponieważ wiele serwerów ma ją wyłączoną i Twoje skrypty bez przeróbek nie będą na nich działać.
Wartą odnotowania rzeczą jest możliwość pominięcia końcowego ?>
jeśli chcemy, aby kod PHP ciągnął się do końca pliku. Taka też konwencja zostanie przyjęta w dalszych rozdziałach. Jest ona stosowana przez wiele skryptów, gdyż pozwala uniknąć przypadkowego pozostawienia np. spacji czy pustej linii na końcu pliku, co niekiedy może być źródłem poważnych problemów, o czym przekonamy się z dalszych rozdziałów. Nasz skrypt będzie zatem prezentować się następująco:
<?php
echo 'To jest tekst 1<br>';
echo 'To jest tekst 2<br>';
echo 'A to jest tekst 3<br>';
Uruchom go i przekonaj się, że to rzeczywiście działa!