dhosting.pl: Na miarę Twoich potrzeb

Przewiń do...

Dla naszych Klientów

Nawigacja

Wyszukiwarka

Dlaczego my?

  • Serwerownie w Polsce (Warszawa)

  • Dostępność usług: 99,9% czasu

  • Autorskie rozwiązania IT

  • Kopia bezpieczeństwa co 24h

  • Czytaj więcej

Biuro Obsługi Klienta

(022) 292-01-01 - infolinia dostępna od poniedziałku do piątku 9:00-17:00

Promocja!

Rozdajemy domeny .pl za darmo!

Kurs PHP

Wstęp

PHP to skryptowy język programowania służący do generowania stron internetowych po stronie serwera.

Różni on się od rozwiązań działających po stronie odwiedzającego (np. JavaScriptu) tym, iż osoba ta widzi jedynie rezultat działania skryptu. Kod źródłowy pozostaje tylko i wyłącznie na serwerze.

PHP jest przy tym bardzo łatwy do opanowania przez początkujących, ale posiada wiele cech przydatnych także zaawansowanym programistom.

Podstawy

Szkielet pliku

Plik ze skryptem PHP powinien składać się z trzech części:

  • Znacznik otwierający:

    <?php

    Nakazuje on włączenie interpretowania kodu PHP.
  • Kod wykonywany przez interpreter.
  • Znacznik zamykający:

    ?>

    Mówi on serwerowi, aby dalszą część kodu traktował ponownie jako zwykły HTML.

Komentarze

W każdym języku programowania bardzo ważne jest komentowanie pisanego kodu. Dzięki temu inne osoby, jak i też my sami po dłuższym czasie będziemy mogli orientować się w źródle skryptu. W PHP możliwe jest stosowanie trzech typów komentarzy:

  • Komentarz jednowierszowy oznaczony znacznikami //
    Po umieszczeniu go dalszy ciąg linijki jest pomijany przez parser.
  • Komentarz jednowierszowy oznaczony znacznikiem #
    W tym przypadku także parser pomija wszystko po tym znaku.
  • Komentarz wielowierszowy oznaczony znacznikami /* i */
    Serwer nie analizuje kodu umieszczonego pomiędzy znakami początku (/*) i końca (*/) komentarza.

Zmienne

W skryptach PHP wykorzystanie zmiennych jest dużo prostsze niż w wielu innych językach. Nazwy zmiennych zawsze zaczynają się od znaku $. Dodatkowo nie jest konieczne wcześniejsze deklarowanie typów stosowanych zmiennych.

$zmienna = 'ciąg tekstowy';
$zmienna = 123456;
$zmienna = true;

Tablice

Tablica to wiele zmiennych ułożonych kolejno, do których można dostać się za pomocą indeksu. Tak samo jak w przypadku zwykłych zmiennych, aby stworzyć tablicę wystarczy przypisać wartość któremuś z jej pól.

$tablica[1] = 'wartość';
$tablica[2] = 'inna wartość';

// Automatyczne wypełnianie indeksu
$tablica[] = 'wartość';
$tablica[] = 'drugawartosc';

Indeksem tablicy nie musi być liczba. Może to być także ciąg tekstowy. Mówimy wtedy o tablicy asocjacyjnej.

$tablica['imie'] = 'Jan';
$tablica['nazwisko'] = 'Kowalski';

Operatory

Logiczne

Operator
NazwaSkładniaOpis
==
Równośćwyrażenie == wyrażenieZwraca prawdę, jeżeli oba wyrażenia mają identyczną wartość.
===
Równośćwyrażenie === wyrażenieZwraca prawdę, jeżeli oba wyrażenia mają identyczną wartość oraz typ.
!=
Nierównośćwyrażenie != wyrażenieZwraca prawdę, jeżeli oba wyrażenia mają różne wartości.
!==
Nierównośćwyrażenie !== wyrażenieZwraca prawdę, jeżeli oba wyrażenia mają różne wartości i/lub typ.
<
Mniejsze niżwyrażenie < wyrażenieZwraca prawdę, jeżeli lewe wyrażenie ma mniejszą wartość od prawego.
>
Większe niżwyrażenie > wyrażenieZwraca prawdę, jeżeli lewe wyrażenie ma większą wartość od prawego.
<=
Mniejsze lub równewyrażenie <= wyrażenieZwraca prawdę, jeżeli lewe wyrażenie ma mniejszą lub równą wartość prawemu.
>=
Większe lub równewyrażenie >= wyrażenieZwraca prawdę, jeżeli lewe wyrażenie ma większą lub równą wartość prawemu.
!
Negacja (nie)!wyrażenieZwraca prawdę, jeżeli wyrażenie jest fałszywe i fałsz, jeśli prawdziwe.
&&
Koniunkcja logiczna (i)wyrażenie && wyrażenieZwraca prawdę, jeżeli oba wyrażenia są prawdziwe.
||
Alternatywa logiczna (lub)wyrażenie || wyrażenieZwraca prawdę, jeżeli przynajmniej jedno z wyrażeń jest prawdziwe.

Matematyczne

Operator
NazwaSkładniaOpis
/
Dzieleniewyrażenie / wyrażenieReprezentuje wynik dzielenia. Drugie wyrażenie nie może być zerem.
%
Dzielenie modulowyrażenie % wyrażenieReprezentuje resztę z dzielenia. Drugie wyrażenie nie może być zerem.
*
Mnożeniewyrażenie * wyrażenieReprezentuje iloczyn dwóch wyrażeń.
+
Dodawaniewyrażenie + wyrażenieReprezentuje sumę dwóch wyrażeń.
-
Odejmowaniewyrażenie - wyrażenieReprezentuje różnicę dwóch wyrażeń.
.
Łączenie (Konkatenacja)wyrażenie . wyrażenieReprezentuje połączenie dwóch wyrażeń w ciąg tekstowy.
++
Inkrementacja (zwiększenie)$zmienna++Reprezentuje wartość zmiennej, a następnie zwiększa ją o 1.
++
Inkrementacja (zwiększenie)++$zmiennaReprezentuje wartość zmiennej powiększoną o 1.
--
Dekrementacja (zmniejszenie)$zmienna--Reprezentuje wartość zmiennej, a następnie zmniejsza ją o 1.
--
Dekrementacja (zmniejszenie)--$zmiennaReprezentuje wartość zmiennej pomniejszoną o 1.

Instrukcje warunkowe

IF

Instrukcja IF pozwala na wykonanie części kodu tylko wtedy, gdy spełniony jest odpowiedni warunek.

Jej składnia jest następująca:

if (wyrażenie) {
// kod wykonywany, gdy wyrażenie będzie prawdziwe
}
else {
// kod wykonywany gdy wyrażenie będzie fałszywe
}

Przy konstrukcji wyrażeń korzystamy z Operatorów logicznych

Szczególnie często popełnianym przez programistów błędem jest stosowanie operatora przypisania "=" (pojedynczy znak równości) zamiast operatora porównania "==" (podwójny znak równości).

Wówczas aplikacja zachowuje się tak, jakby warunek był zawsze prawdziwy.

Przykładowy kod wykorzystujący instrukcję IF - dzielenie dwóch liczb uwzględniając dzielnik różny od zera.

<?php
$a = 10;
$b = 0;

if ($b == 0) {
        echo 'Nie można dzielić przez zero!';
}
else {
        echo 'Wynik to: '.$a/$b;
}
?>

SWITCH

Instrukcja switch nazywana jest często instrukcją wyboru. Spośród dostępnego zbioru wyszukuje określoną wartość na podstawie pewnego wyrażenia i wykonuje zdefiniowany dla niej kod.

W nawiasie polecenia switch definiujemy, jakiemu wyrażenia wartość pragniemy sprawdzić. Wewnątrz nawiasów klamrowych używamy struktury case wartość:, aby zdefiniować dopuszczalne wartości, czyli stany wyrażenia. Po dwukropku piszemy odpowiedni kod. Jeżeli żaden ze stanów nie spełnia naszych oczekiwań, istnieje także klauzula default: pisana na samym końcu opisująca domyślne zachowanie.

Przykładowy kod:

        switch {$dzien} {
                case '1':
                        echo 'Dziś jest poniedziałek';
                        break;
                case '2':
                        echo 'Dziś jest wtorek';
                        break;
                case '3':
                        echo 'Dziś jest środa';
                        break;
                case '4':
                        echo 'Dziś jest czwartek';
                        break;
                case '5':
                        echo 'Dziś jest piątek';
                        break;
                case '6':
                case '7':
                        echo 'Dziś jest weekend';
                        break;
                default:
                        echo 'Gdzieś jest najprawdopodobniej błąd ;)';
                        break;
        }

Pętle

Pętlą nazywamy strukturę kontrolną powtarzającą dany kod do czasu spełnienia określonego warunku.

FOR

Pętla FOR używana jest w przypadku zdefiniowania skończonej ilości powtórzeń. Jej składnia jest następująca:

for (wyrazenie_startu; wyrazenie_zakonczenia; wyrazenie_iteracji) {
// instrukcje
}

Wyrażenie startu to zazwyczaj inicjalizacja licznika ilości wykonanych powtórzeń, zakończenia - warunek zakończenia wykonywania pętli, a iteracji to zazwyczaj zwiększanie bądź zmniejszanie licznika.

// Przykład wypisujący wszystkie liczby od 1 do 100
for ($i=1; $i<=100; $i++) {
echo $i;
}

Możliwe jest także odwrotne formułowanie warunków.

// Przykład wypisujący wszystkie liczby od 100 do 1
for ($i=100; $i>=1; $i--) {
echo $i;
}

WHILE

Pętla WHILE jest prostszym odpowiednikiem FOR. Podawany jest w niej tylko warunek zakończenia, a serwer wykonuje blok kodu, dopóki będzie on spełniony.

$a = 100;
$b = 50;
while($a > $b) {
echo $a;
$a = $a - 10;
}

DO - WHILE

Podana struktura jest to lekko zmodyfikowane WHILE. W tym przypadku warunek sprawdzany jest pod koniec wykonania pętli. Składnia jest dosyć nietypowa:

do
{
        // instrukcje pętli
}
while (warunek);

$a = 1;
$b = 10;
do
{
        echo $b;
        $b = $b - $a;
}
while ($b == 0);

FOREACH

Ta instrukcja służy wyłącznie do przeglądania zawartości typów złożonych: tablic oraz obiektów.

Kod wewnątrz niej jest powtarzany dla każdego z elementów tablicy, a on sam jest na ten czas przenoszony do tworzonej przez pętlę zmiennej.

Składnia:

foreach ($zasob as $wartosc) {
// operacje (elementy tablicy pod $wartosc)
}

$tablica = array('poniedziałek', 'wtorek', 'środa', 'czwartek', 'piątek', 'sobota', 'niedziela');
foreach ($tablica as $dzien) {
echo($dzien);
}

Sesje

Opis

Protokół HTTP jest protokołem bezstanowym. Oznacza to, że serwer WWW rozpatruje każde żądanie niezależnie od innych, nie szukając żadnych powiązań w stylu wysyłania ich przez tego samego internautę. Utrudnia to teoretycznie tworzenie wszelkich systemów autoryzacji, które wymagają śledzenia poczynań użytkownika na naszej stronie i przenoszenia jego danych autoryzacyjnych między kolejnymi żądaniami, czyli krótko mówiąc - wymagają obecności systemu sesji. Używając PHP lub innego dynamicznego języka server-side można je jednak zasymulować. "Nasz" język jest o tyle prosty, iż posiada już zaimplementowane stosowne funkcje. My tylko musimy zacząć ich używać.

Działanie sesji w PHP jest bardzo proste. W momencie pierwszego trafienia na stronę interpreter tworzy specjalny, losowy oraz unikalny identyfikator przesyłany między żądaniami za pomocą ciastek lub parametru PHPSESSID doklejanego automatycznie do adresów URL. Na jego podstawie odczytywany jest później odpowiedni plik z danymi sesji zapisany gdzieś na serwerze. Pod koniec przetwarzania żądania wszystkie wprowadzone przez skrypt zmiany są z powrotem zapisywane do wspomnianego pliku tak, aby były widoczne przy wejściu na kolejną podstronę.

Praktyczne wykorzystanie

Aby zainicjować mechanizm sesji, należy wywołać funkcję session_start();

Należy pamiętać, iż przed zainicjowaniem sesji nie wolno wysłać żadnych innych danych do przeglądarki!

Uzyskujemy wtedy superglobalną tablicę $_SESSION, która przechowuje dane dot. bieżącej sesji.

// Plik: logowanie.php
<?php
Session_start();
if($_POST['login'] == 'jan' AND $_POST['haslo'] == 'kowalski')
{
        $_SESSION['zalogowany'] = 1;
        header('Location: tajne.php');
}
else
{
        ?>
                <!-- Formularz logowania - zwykły HTML -->
        <?php
}
?>

// Plik: tajne.php
<?php
session_start();
if($_SESSION['zalogowany'] != 1)
{
        header('Location: logowanie.php');
}
else
{
        // kod przeznaczony dla zalogowanego użytkownika
}

Obsługa plików

INCLUDE i REQUIRE

Funkcje te służą do dołączenia kodu umieszczonego w innym pliku PHP.

Różnicą między nimi jest jedynie sposób zgłaszania błędów w przypadku braku dostępu do żądanego zasobu.

Require zgłasza błąd krytyczny, przerywając przy tym wykonywanie istniejącego skryptu, a include jedynie ostrzeżenie, kontynuując przy tym działanie skryptu.

Składnia:

include('nazwa_pliku');
require('nazwa_pliku');

Odczyt z plików

Czasami istnieje konieczność odczytu zawartości plików tekstowych. Odczyt gotowych, przetworzonych danych z plików jest znacznie szybszy niż odczyt z bazy danych i często wykorzystywany przez różne aplikacje jako pamięć podręczna (cache).

Aby pobrać zawartość pliku do zmiennej stosujemy funkcję file_get_contents(), której jako argument podajemy nazwę pliku, który chcemy otworzyć.

$jakas_zmienna = file_get_contents('plik.txt');

Zapis do plików

W nowych wersjach PHP także zapis do plików został maksymalnie uproszczony. Służy to tego funkcja file_put_contents(). Jej składnia jest następująca:

file_put_contents('nazwa_pliku', dane);

$zmienna = 'Litwo, Ojczyzno moja';
file_put_contents('pan_tadeusz.txt', $zmienna);

Honorujemy płatności:

Menu pomocnicze