Active Server Pages,ActiveServerPages+,ASP,ASP+,aspx,VBScript,IIS,internet,intranet,programming,programowanie,XML,Extensible Markup Language,kurs,opis,HTML,Hypertext Markup Language,JScript,JavaScript,wyszukiwarka,znajdz,instrukcja,Stelmik,Stelmi,free,darmo,zadarmo,free,serwer,server,www,konta,PHP,perl,klient,uslugi,asp,sklep internetowy,sklepy internetowe,e-sklep,esklep,tworzenie stron internetowych,strony internetowe,strony www,tworzenie stron www,strony internetowe,web page,webpage,creating,Krzysztof Stelmach,Krzysztof,Stelmach,www.stelmach.info,www.asp.z.pl
 
Ledger Nano X - The secure hardware wallet
IP: 3.238.117.130 
 
 PHP / WSTĘP
Szukaj:  
Pon, 22.04.2024r.
KURSY » języki - serwer » PHP » Wstęp
 

Nie będzie tutaj omawiana instalacja i konfiguracja PHP, gdyż informacje takie można znaleźć na stronie http://php.zone.pl/.

1. Co to jest PHP i jak jego używać?

PHP (PHP: Hypertext Preprocessor) jest językiem skryptowym wykonywanym po stronie serwera, to znaczy, że komendy zawarte między znacznikami <?php i ?> lub <? i ?> będą wykonywane na serwerze, a nie na komputerze klienta (użytkownika) w przeglądarce. Język skryptowy PHP jest zbliżony do języków Perl oraz C. Za jego pomocą można zrealizować wszystko to, co za pomocą programów CGI.

Przykład skryptu:

<HTML>
<HEAD>
<TITLE>Pierwszy skrypt PHP<TITLE>
</HEAD>
<BODY>
<?php
   echo("Witaj świecie!"); // Ta linia wypisuje tekst 'Witaj świecie!'
?>

</BODY>
</HTML>

Wygląd znaczników określających część skrypty wykonywaną po stronie serwera jest zależna od konfiguracji zainstalowanego PHP. Jeżeli wartość short_open_tag w pliku konfiguracyjnym PHP (php.ini) posiada wartość TRUE to znaczniki mogą przyjmować obie formy (tj. <?php ?> lub <? ?>), zaś w przypadku wartości FALSE znaczniki określające zawartość PHP muszą wyglądać następująco: <?php i ?>.
Każda instrukcja PHP, podobnie jak w Perlu i C, musi być zakończona znakiem średnika, tak jak zostało to pokazane w powyższym przykładzie.

Komentarze można umieszczać:

- za znakami // - w przypadku, gdy komentarz znajduje się tylko w jednej linii
- za znakiem # - w przypadku, gdy komentarz znajduje się tylko w jednej linii
- wewnątrz znaków /* ... */ - w przypadku, gdy komentarz znajdować się będzie w jednej lub większej ilości linii

Przykład:

<?php
echo "To jest linia 1"; // Ten komentarz znajduje się w jednej linii
/* A ten komentarz
znajduje się w dwóch liniach */

echo "To jest linia 2"; # To jest jeszcze jeden komentarz
?>

Należy być ostrożnym, aby nie umieszczać komentarzy zawartych wewnątrz znaków /* i */ wewnątrz siebie tak jak zostało to pokazane poniżej:

<?php
/*
echo "To jest tekst testowy"; /* Ten komentarz spowoduje pojawienie się błędów */
*/
?>

2. Typy zmiennych

W PHP występują następujące typy zmiennych:

- zawierające wartości liczb całkowitych,
- zawierające wartości liczb rzeczywistych,
- łańcuchy,
- tablice,
- obiekty.

Przykłady zmiennych całkowitych:

$liczbaC = 123; # wartość dziesiętne
$liczbaC = -123; # wartość ujemna
$liczbaC = 0123; # wartość ósemkowa
$liczbaC = 0x23; # wartość szestnastkowa

Przykłady zmiennych rzeczywistych:

$liczbaR = 4.321;
$liczbaR = -4.3e2;

Łańcuchy mogą być zawarte w pojedynczym cudzysłowiu, tj. ', lub w podwójnym, tj. ". Jeżeli łańcuch zostanie zawarty w podwójnym cudzysłowiu to wartości zmiennych zawartych wewnątrz łańcucha będą wyświetlone, zaś w przypadku pojedynczego cudzysłowia, nie będą. Znak \ poprzedza elementy określające znaki specjalne. W przypadku pojedynczego cudzysłowia występują tylko dwa znaki specjalne, tj.:

\\ - wyświetla znak \
\' - wyświetla znak '

W przypadku podwójnego cudzysłowia znaków specjalnych występuje znacznie więcej. Oto one:

\n - przejście do nowej linii
\r - powrót karetki do początku linii
\t - odpowiednik klawisza Tab (tabulacja)
\\ - wyświetla znak \
\" - wyświetla znak "
\$ - wyświetla znak $
\[0-7]{1,3} - wyświetla znak odpowiadający wartości podanej w formacie ósemkowym
\x[0-9A-Fa-F]{1,2} - wyświetla znak odpowiadający wartości podanej w formacie szestnastkowym

Przykłady użycia zmiennej wewnątrz łańcucha:

$liczba = 5;
$lancuch = "<p>Liczba to $liczba</p>";
$lancuch2 = '<p>Liczba to $liczba</p>';
echo $lancuch; // wyświetli się komunikat "Liczba to 5"
echo $lancuch2; // wyświetli się komunikat "Liczba to $liczba"

Jeśli jest potrzeba wyświetlenia dowolnego wyrazu z łańcucha można to zrobić w następujący sposób:

$lancuch = "<p>To jest przykład testowy.</p>";
echo $lancuch[0]; // wyświetli się komunikat "To"
echo $lancuch[2]; // wyświetli się komunikat "przykład"
echo $lancuch[strlen($lancuch) - 1]; // wyświetli się komunikat "testowy.", ostatni wyraz

W powyższym przykładzie funkcja strlen(nazwaŁańcucha) zwraca długość łańcucha nazwaŁańcucha.

Istnieje możliwość przypisania zmiennej łańcucha, który nie będzie zawierał symboli określających znaków specjalnych, takich jak przejście do następnej linii, itp., mimo tego, że tekst będzie znajdował się w kilku liniach. Do tego celu służy składnia <<. Należy tylko pamiętać o tym, aby za znakami << znalazł się identyfikator w postaci tekstu oraz ten sam identyfikator na końcu łańcucha. Oto przykład:

$lancuch = <<EOD
Przykład łańcucha
znajdującego się
w kilku liniach.
EOD;

Łączenie dwóch łańcuchów odbywa się za pomocą operatora ".", oto przykład:

$lancuch = "Ten łańcuch";
$lancuch = $lancuch . " zawiera jeszcze ten tekst.";

i jest on równoważny zapisowi

$lancuch = "Ten łańcuch";
$lancuch .= " zawiera jeszcze ten tekst.";

Tablice określają grupy zmiennych skalarnych. Tablice mogą być jedno- lub wielowymiarowe. W celu jej utworzenia można posłużyć się funkcjami list() oraz array() lub poprzez bezpośrednie przypisanie wartości odpowiedniej pozycji tablicy, np.:

$tablica[0] = "tekst";
$tablica[1] = "inny";
$tablica[2] = "jeden";
$tablica2["wiek"] = 14;

Powyższy zapis jest równoważny zapisowi:

$tablica = array(
  0 => "tekst",
1 => "inny",
2 => "jeden");
$tablica2 = array(
  "wiek" => 14);

Jeśli istnieje potrzeba dodania elementów do tablicy można to zrobić w następujący sposób:

$tablica[] = "lancuch"; // $tablica[3] = "lancuch"
$tablica[] = "jeszcze"; // $tablica[4] = "jeszcze"

w celu określenia długości łańcucha należy posłużyć się funkcją count(), np.:

echo count($tablica); // wyświetli wartość 5

Funkcje odpowiadające za sortowanie tablicy:

asort() - sortuje elementy tablicy alfabetycznie rosnąco
arsort() - sortuje elementy tablicy alfabetycznie malejąco
ksort() - sortuje elementy tablicy według klucza rosnąco
krsort() - sortuje elementy tablicy według klucza malejąco
rsort() - sortuje elementy tablicy malejąco
sort() - sortuje elementy tablicy rosnąco
uasort() - sortuje elementy tablicy wykorzystując funkcję zdefiniowaną przez użytkownika
usort() - sortuje elementy tablicy według wartości zwróconej przez funkcję zdefiniowaną przez użytkownika
uksort() - sortuje elementy tablicy według wartości zwróconej przez funkcję zdefiniowaną przez użytkownika

W celu przemieszczania się po elementach tablicy można użyć funkcji next(), prev() lub each(). W celu pobrania bieżącego elementu można użyć funkcji current(pozycjaElementu).

next() - zwraca wartość następnego elementu tablicy względem bieżącej pozycji; w przypadku wystąpienia końca tablicy zwraca wartość FALSE
prev() - zwraca wartość poprzedzającego elementu tablicy względem bieżącej pozycji; w przypadku braku elementów zwraca wartość FALSE
each() - zwraca parę zawartą w czteroelementowej tablicy, tj. klucz i wartość, dotyczącą bieżącego elementu tablicy, po czym następuje zmiana pozycji na element następny; w przypadku wystąpienia ostatniego elementu tablicy pozycja nie jest zmieniana; przykład:
  $foo = array ("Robert" => "Bob", "Seppo" => "Sepi");
$bar = each ($foo);
teraz $bar będzie zawierać:
  0 => 'Robert'
1 => 'Bob'
key => 'Robert'
value => 'Bob'
current() - zwraca bieżący element tablicy
end() - wskazuje ostatni element tablicy jako element bieżący

Przykłady tablic wielowymiarowych:

$tab[1][0] = 3;
$tab["liczba"][3] = 4;
$tab[2]["liczba"] = 5;
$tab["liczba"][1]["kolor"] = 6;
$tab["kolor"]["tekst"][0]["liczba"] = 7;

Używając tablic wielowymiarowych należy pamiętać o tym, że wewnątrz łańcucha w celu wyświetlenia ich wartości należy umieścić je wewnątrz nawiasów klamrowych tak, jak to pokazuje poniższy przykład:

$tab["liczba"][1]["kolor"] = 6;
$lancuch = "Wartosc łańcucha to {$tab[liczba][1][kolor]}";

// Ten przykład dotyczy PHP4

lub

$tab["liczba"][1]["kolor"] = 6;
$lancuch = "Wartosc łańcucha to " . $tab[liczba][1][kolor];

W celu posługiwania się obiektami należy ja najpierw zainicjalizować. Oto przykład:

<?php
class klasa {
function rob_klasa() {
echo "Wykonuje się funkcja rob_klasa()";
}
}
$moja_klasa = new klasa;
$moja_klasa->rob_klasa();
?>

Nazwy zmiennych w PHP:
- muszą być poprzedzane znakiem dolara "$",
- w przypadku wielkich i małych liter należy pamiętać, że są one rozróżniane, czyli zmienna Liczba to nie jest to samo co zmienna liczba,
- mogą zawierać tylko znaki tj. a-z, A-Z, "_" oraz znaki z zakresu od 7F (hex) do FF (hex).

Poniżej przedstawione zostały zmienne tworzone przez serwer Apache (http://www.apache.org/).

Nazwa zmiennej Opis
GATEWAY_INTERFACE opis specyfikacji CGI używany przez serwer WWW, np. 'CGI/1.1'
SERVER_NAME nazwa serwera WWW, na którym znajduje się bieżacy skrypt
SERVER_SOFTWARE łańcuch identyfikujący serwer, podawany w nagłówku w czasie przesyłania odpowiedzi na "zapytanie" klienta (przeglądarki)
SERVER_PROTOCOL nazwa oraz wersja protokołu wymiany informacji, np. 'HTTP/1.0'
REQUEST_METHOD określa metodę dostępu do strony, np. 'GET', 'POST', 'HEAD', 'PUT'
QUERY_STRING zawiera ciąg znaków znajdujący się w adresie wywołanej strony po znaku '?'
DOCUMENT_ROOT zawiera ścieżkę do katalogu głównego, w którym skrypt jest wykonywany
HTTP_ACCEPT zawartość Accept: nagłówek z bieżącego wywołania
HTTP_ACCEPT_CHARSET zawartość Accept-Charset: nagłówek z bieżącego wywołania, np. 'iso-8859-2,*,utf-8'
HTTP_ENCODING zawartość Accept-Encoding: nagłówek z bieżącego wywołania, np. 'gzip'
HTTP_ACCEPT_LANGUAGE zawartość Accept-Language: nagłówek z bieżącego wywołania, np. 'pl'
HTTP_CONNECTION zawartość Connection: nagłówek z bieżącego wywołania, np. 'Keep-Alive'
HTTP_HOST zawartość Host: nagłówek z bieżącego wywołania
HTTP_REFERER zawiera adres strony z której została wywołana strona bieżąca, nie obsługiwane przez wszystkie przeglądarki
HTTP_USER_AGENT zawartość User_Agent: nagłówek z bieżącego wywołania, łańcuch zawierający informacje na temat przeglądarki, np. 'Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586)'
REMOTE_ADDR zawiera adres IP z pod którego użytkownik wywołał bieżącą stronę
REMOTE_PORT zawiera numer portu użytego po stronie użytkownika wywołującego stronę (klienta) przez który odbywa się komunikacja z serwerem WWW
SCRIPT_FILENAME zawiera pełną ścieżkę do aktualnie wykonywanego (wywołanego) skryptu
SERVER_ADMIN zawiera wartość przypisaną dyrektywie SERVER_ADMIN (Apache) w pliku konfiguracyjnym serwera WWW
SERVER_PORT zawiera numer portu przez który komunikuje się serwer WWW. Domyślnie jest to wartość '80' lecz może być inna
SCRIPT_NAME zawiera ścieżkę do bieżącego skryptu
REQUEST_URI zawiera ścieżkę wirtualną do bieżącego skryptu, np. '/index.html'

Zmienne środowiskowe:

Nazwa zmiennej Opis
argv tablica argumentów dołączonych do skryptu w przypadku, gdy jest on wywołany z lini komend lub poprzez wywołanie metody GET
argc zawiera liczbę parametrów podanych w lini komend, dołączonych do skryptu
PHP_SELF nazwa pliku aktualnie wykonywanego w odniesieniu do katalogu głównego WWW (ścieżka wirtualna); jeżeli skrypt wywołany jest z linii komend - zmienna jest niedostępna
HTTP_COOKIES_VARS zawiera tablice 'cookies' dołączonych do skryptu; dostępna w przypadku ustawionej wartości track_vars na ON lub wywołaniu dyrektywy <?php_track_vars?>
HTTP_GET_VARS,
_GET
zawiera tablicę zmiennych dołączonych do skryptu poprzez wywołanie metody GET; dostępna w przypadku ustawionej wartości track_vars na ON lub wywołaniu dyrektywy <?php_track_vars?>
HTTP_POST_VARS,
_POST
zawiera tablicę zmiennych dołączonych do skryptu poprzez wywołanie metody POST; dostępna w przypadku ustawionej wartości track_vars na ON lub wywołaniu dyrektywy <?php_track_vars?>
 
do góry ^ 
Jesteś 4456351 odwiedzającym
 
 
Copyright © 2003-2024 Krzysztof Stelmach, Wszelkie prawa zastrzeżone.
 
System reklamy Test