Sunteți pe pagina 1din 44

Programare WEB

PHP

Lectia 5.
Istoric
 Limbajul PHP a fost creat in anul 1994 de catre Rasmus
Lerdorf, care incerca sa-si personalizeze propria pagina
Web;

 Din acest motiv limbajul a fost numit initial PHP adica:


Personal Home Page (pagina de baza personala).

 Ulterior limbajul a fost perfectionat, utilitatea si


caracteristicile sale s-au dezvoltat treptat, ajungand sa
aiba semnificatia Hypertext Preprprocesor (PHP).

 Preprocesarea consta in aceea ca datele sunt


interpretate(preprocesate) de catre serverul Web inainte
ca acesta sa genereze cod HTML.
Funcţionalitate
 PHP este un limbaj de programare

 Este un limbaj pe parte de server

 Este un limbaj de scriptare

 Mai mult, spre deosebire de limbajele de scripting, precum JavaScript, PHP


ruleaza pe serverul Web, nu în navigatorulul Web.

 În consecinta, PHP poate obtine accesul la fisiere, baze de date si alte


resurse inaccesibile programului JavaScript.

 In plus, putem folosi limbajul PHP pentru a generera cod Java Script.

 Secventele de cod PHP pot fi incluse intr-un fisier HTML; ulterior serverul
Web va identifica aceasta secventa de cod , va procesa acesta secventa de
cod generand cod HTML iar la final va inlocui secventa de cod PHP cu
codul HTML.
Caracteristici
 simplicitate : acest limbaj este simplu de folosit, fiind accesibil si ne-programatorilor. Datorita
acestui fapt el a devenit cel mai popular limbaj de script pentru generarea de pagini HTML
dinamice.

 usor de folosit : limbajul are o sintaxa asemanatoare limbajului C, care este foarte popular in
randul programatorilor.

 eficienta : specificatiile limbajului includ folositea tehnicilor de POO (Programare orientata pe


obiecte) iar acest lucru contribuie la marirea productivitatii: un programator PHP poate folosi
module scrise de un alt programator fara sa fie nevoit sa cunoasca detalii specifice de
implementare a codului.

 cross-platform : exista implementari ale limbajului pe mai multe sisteme de operare, cele mai
populare fiind cele de pe sistemele Linux si Windows.

 gratis : PHP reprezinta un program Open Source, oricine poate folosi acest limbaj fara a fi
nevoit sa plateasca ceva. De asemenea utilizatorii au access la sursele PHP (scrise in limbajul
C). Site-ul oficial al limbajului PHP se afla la : www.php.net , datorita popularitatii acestui limbaj
exista numeroase site-uri Web care prezinta informatii despre PHP, exemple de cod, forum de
discutii , etc.
Sintaxa
<?php

echo("scrieti aici un text oarecare");


?>
Tipuri de siruri si variabile
 - Boolean
 - Integer
 - Float
 - String
 - Array
 - Object
 - Resource
 - Null
Variabile

 În PHP, o variabilă este reprezentată de


semnul '$', urmat de numele variabilei.

$a=1;
 În PHP orice instrucţiune este urmată
obligatoriu de ;
Variabile globale:
 $GLOBALS - pot fi accesate toate variabilele globale care sunt
accesibile script-ului PHP curent; acest vector este indexat chiar prin
numele variabilelor globale. Această variabilă superglobală este
accesibilă începând cu versiunea 3.0.0

 $_SERVER - conţine o serie de variabile ale căror valori sunt setate de


server-ul web; majoritatea valorilor variabilelor din acest vector depind de
mediul de execuţie al script-ului curent. A fost introdusă începând de la
versiunea 4.1.0. În versiunile anterioare se folosea

 $HTTP_SERVER_VAR .
Este o variabilă care conţine informaţii cum ar fi headere, locaţia
scriptului, sau informaţii despre vizitator şi browser.
Variabilele globale pentru trimiterea datelor:

 $_GET este o variabilă array globală. A fost introdusă în versiunea


4.1.0. Pentru versiunile anterioare se foloseşte $HTTP_GET_VARS
care nu este variabilă globală. Puteţi folosi $_GET pentru a trimite
variabile cu valori prin intermediul linkurilor.

 $_POST este de asemenea o variabilă array globală. A fost introdusa


în versiunea 4.1.0. Pentru versiunile anterioare se foloseşte
$HTTP_POST_VARS care nu este variabilă globală. Puteţi folosi
$_POST pentru a trimite variabile cu valori prin intermediul
formularelor.

 $_GETşi $_POST conţin variabile primite de script prin intermediul


unor transferuri care folosesc metodele HTTP get, respectiv post. De
exemplu, prin intermediul acestor vectori pot fi accesate valorile
câmpurilor dintr-un formular care a fost completat şi transmis folosind
una dintre cele doua metode.
Variabilele HTTP coockies:

 $_COOKIE conţine valorile variabilelor care


conţin informaţii referitoare la cookie-urile
păstrate pe calculatorul utilizatorului care
accesează pagina web. A fost introdus în
versiunea 4.1.0. În versiunile anterioare, utilizaţi
$HTTP_COOKIE_VARS .
Variabile pentru uploadul fisierelor:

 $_FILES conţine variabile primite de script


prin intermediul încărcărilor de fişiere prin
metoda post. A fost introdus în versiunea
4.1.0. În versiunile anterioare se foloseşte
$HTTP_POST_FILES care nu este
variabilă globală.
Variabile de sesiune:

 $_SESSION conţine variabile care


corespund sesiunii curente a script-ului,
sub formă de array. A fost introdusă în
versiunea 4.1.0 şi este de asemenea
globală. În versiunile anterioare folosiţi
$HTTP_SESSION_VARS.
Variabile predefinite (de mediu)
Vizualizarea datelor unei variabile de mediu se
poate face folosind variabila $_SERVER si o
cheie (intre paranteze patrate) ce repreinta
numele variabilei de mediu.
De exemplu, pt. afisarea domeniului
serverului unde ruleaza scriptul
     echo $_SERVER['SERVER_NAME'];

 DOCUMENT_ROOT- Calea care constituie


radacina arborelui catalogului cu documente al
serverului Web.
Variabile predefinite (de mediu)
 REMOTE_ADDR- Adresa IP a clientului (vizitatorului).
 REMOTE_HOST- Numele de gazda al clientului.
 REMOTE_PORT- Adresa portului clientului de unde a pornit
cererea.
 REQUEST_METHOD- Metoda de cerere HTTP folosita; de
exemplu, GET, POST.
 REQUEST_URI- URI folosit pentru accesul la pagina curenta. URI
este alcatuit dintr-un URL si un sir optional de interogare.
 SCRIPT_FILENAME- Numele de cale absolut al scriptului curent.
 SCRIPT_NAME- Adresa URL a scriptului curent.
 SERVER_ADMIN- Adresa de e-mail a administratorului serverului
Web.
 SERVER_HOST- Numele de gazda asociat serverului Web care
prelucreaza cererea.
 SERVER_PORT - Portul folosit de serverul Web pentru comunicatii.
 SERVER_PROTOCOL- Numele si versiunea protocolului prin
intermediul caruia s-a executat cererea.
Afisarea unui mesaj
 <?php
echo ("sir de caractere");
?>


<?php
print("sir de caractere");
?>
Operatori şi structuri de control

 Aceeaşi ca pentru limbajul C++


Diferenţe

 === - verifică egalitatea a două variabile


după valoare şi tip

 !=== - două variabile diferite după valoare


şi tip
Diferenţe (completări)
 Structura foreach

Această structură poate fi folosită pentru a


realiza o iteraţie printre toate elementele
unui vector. Aşadar, ea nu poate fi folosită
decât împreună cu vectorii; utilizarea sa
asupra unei variabile de alt tip duce la
apariţia de erori.
Structura foreach

Există două sintaxe acceptate pentru această structură


şi anume:

 foreach (expresie_vectoriala as $valoare)


instructiune

sau

 foreach (expresie_vectoriala as $cheie => $valoare)


instructiune
Structura foreach
 Dacă se utilizează prima variantă, atunci la fiecare
iteraţie valoarea elementului curent este atribuită
variabilei $valoare şi apoi se trece la elementul următor
(a cărui valoare va fi atribuită variabilei la următoarea
iteraţie).

 Execuţia ciclului se încheie în momentul în care nu mai


există alte elemente în vector.

 Singura diferenţa care apare în cazul utilizării celei de-a


doua variante este faptul că la fiecare iteraţie valoarea
cheii elementului curent este atribuită variabilei $cheie.
Funcţii (definirea)

 function nume_functie(nume_argument)
 {

        Aici se insereaza corpul functiei

 }
Funcţii predefinite
 abs(x) - Returneaza valoarea absoluta a lui 'x'
 ceil(x) - Returneaza valoarea 'x', rotunjita la întregul
imediat superior
 floor(x) - Returneaza valoarea 'x', rotunjita la întregul
imediat inferior
 max(x,y,...) - Returneaza valoarea maxima a unui set de
valori
 min(x,y,...) - Returneaza valoarea minima a unui set de
valori
 pow(x,n) - Returneaza numarul 'x', ridicat la puterea
specificata 'n'
 strftime(f) - Returneaza data curenta, formatata conform
continutului parametrului 'f'
 sqrt(x) - Returneaza radacina patrata a lui 'x'
Funcţii predefinite

 rand()
 isset()
 require("nume_fisier")
 include("nume_fisier.php");
Utilizarea matricelor (tablouri)
Matricele pot fi create folosind doua
medode principale:

 1 - utilizand direct instructiunile de atribuire


 2 - folosind sintaxa array().
Crearea de matrice folosind sintaxa array()

 $limbaje = array("Perl", "PHP", "Python");

 Aceasta instructiune creeaza o matrice


care contine urmatoarele asocieri:
 0 => Perl
1 => PHP
2 => Python
Matrice asociativa
 Ca si în cazul utilizarii unei instructiuni de
atribuire pentru crearea unei matrice
valorile cheilor nu trebuie sa fie
consecutive si nici macar întregi:

 $limbaje = array("PHP"=>"Ridicat",
"Python"=>"Mediu", "Perl"=>"Redus");
Parcurgerea iterativa a unui tablou secvenţial
 Un tablou ale carui chei sunt valori întregi consecutive se
numeste "tablou secvential".

 În general, valoarea cea mai mica a unei chei dintr-un


tablou secvential este zero

 În cazul în care cunoasteti valoarea minima a cheii unui


tablou secvential, puteti parcurge iterativ tabloul folosind o
bucla for

 Folositi functia count() pentru a forma expresia de test


(conditia) a buclei. Functia count() returneaza numarul
elementelor dintr-un tablou.
Parcurgerea iterativa a unui tablou non-secvential

 Pentru citirea datelor dintr-un tablou non-


secvential se poate folosi instructiunea foreach

 Instructiunea foreach are urmatoarea forma


generala:

foreach (tablou as $cheie => $valoare) {corp}


Lucrul cu functii lista
 În afara de modalitatile de parcurgere iterativa a tablourilor, PHP ofera
numeroase functii care va permit traversarea tablourilor, deplasându-va
înainte sau înapoi prin elementele acestuia.

 Prima dintre aceste functii este current(), care returneaza valoarea curenta
a tabloului. Functia current() foloseste un pointer intern de tablou, pe care
PHP îl creeaza pentru fiecare tablou.

 Functiile next() si prev() modifica pointerul intern al tabloului si se pot folosi


alaturi de functia current() pentru a parcurge un tablou.
Functia next(), asa cum îi arata si numele, modifica pointerul intern al
tabloului astfel încât acesta sa faca referire la urmatorul element, în timp ce
functia prev() modifica pointerul intern al tabloului astfel încât acesta sa
faca referire la elementul anterior.
Functia key()

 Functia key() este corelata cu functia


current(). Daca functia current()
returneaza valoarea asociata elementului
curent, functia key() returneaza cheia
asociata elementului curent.
Functia each()
 O alta functie utila în parcurgerea tablourilor este each().
Functia each() returneaza perechea "cheie-valoare" care se
afla la pozitia curenta din tabloul specificat. Perechea "cheie-
valoare" este returnata sub forma unui tablou asociativ cu
patru elemente, dupa cum urmeaza:
Cheie Valoare
0- Componenta cheie a perechii cheie-valoare curenta
1- Componenta valoare a perechii cheie-valoare curenta
key- Componenta cheie a perechii cheie-valoare curenta
value- Componenta valoare a perechii cheie-valoare curenta
Sortarea tablourilor
 PHP furnizeaza o suita de functii care
faciliteaza sortarea unui tablou.

 Pentru aceasta, pur si simplu invocati


functia sort():

                sort($limbaje);

 Daca dorim sa sortam in ordine inversa


alfabetic, folosim functia rsort().
Funcţii matrice
 Pentru a transforma un sir intr-o matrice
folosim functia explode().

 Pentru a transforma o matrice intr-un sir,


folosim functia implode().
Lucrul cu siruri
 Valorile de tip sir sunt secvente de caractere incluse între ghilimele
duble sau simple

 Puteti include un caracter special în cadrul unui sir folosind o


secventa escape care reprezinta caracterul special.

 Variabilele pot fi de tip string si li se poate atribui o valoare de tip sir.

 Operatorul de concatenare, punct, ( . ) se poate folosi pentru unirea


sirurilor.

 PHP poate converti în mod automat o valoare numerica într-un sir,


respectiv valoarea unui sir într-un numar.
Secventele escape folosite în PHP:

\n - salt la linie noua


\r - retur de car (rand nou)
\t - caracter de tabulare pe orizontala
\\ - backslash
\$ - simbolul dolarului
\" - ghilimele duble
\xxx - caracterul asociat valorii ASCII xxx,
exprimata sub forma unui numar in octal
\xnn - caracterul asociat valorii ASCII xxx,
exprimata sub forma unui numar în hexazecimal
Funcţii pentru şiruri
 Functia strlen() returneaza lungimea sirului specificat ca
argument al functiei.

 chop(s) - Returneaza valoarea lui 's', eliminând spatiile albe


de la extremitatea din dreapta a sirului. Similar cu rtrim()

 ltrim(s) - Returneaza valoarea lui 's', eliminând spatiile albe


de la extremitatea din stânga a sirului

 rtrim(s) - Returneaza valoarea lui 's', eliminând spatiile albe


de la extremitatea din dreapta a sirului. Similar cu chop()

 trim(s) - Returneaza valoarea lui 's', eliminând spatiile albe


de la ambele extremitati
Funcţii pentru şiruri
 - Functia strtoupper() returneaza
valoarea argumentului, convertita la
majuscule.

 - Functia strtolower() returneaza valoarea


argumentului, convertita la minuscule.
Compararea sirurilor
 strcasecmp(s1, s2)- Executa o comparatie fara
sensibilitate la diferenta între majuscule si
minuscule. Returneaza o valoare mai mica decât
zero daca 's1' este mai mic decât 's2', o valoare
mai mare decât zero daca 's1' este mai mare
decât 's2', respectiv 0 în celelalte cazuri.

 strcmp(s1, s2)- Executa o comparatie cu


sensibilitate la diferenta între majuscule si
minuscule. Returneaza o valoare mai mica decât
zero daca 's1' este mai mic decât 's2', o valoare
mai mare decât zero daca 's1' este mai mare
decât 's2', respectiv 0 în celelalte cazuri.
Compararea sirurilor
 strncasecmp(s1, s2, n)- Executa o comparatie
fara sensibilitate la diferenta între majuscule si
minuscule. La comparatie sunt luate în
considerare un numar de 'n' caractere.
Returneaza o valoare mai mica decât zero daca
's1' este mai mic decât 's2', o valoare mai mare
decât zero daca 's1' este mai mare decât 's2',
respectiv 0 în celelalte cazuri.
Compararea sirurilor
 strncmp(s1,s2, n)- Executa o comparatie cu
sensibilitate la diferenta între majuscule si
minuscule. La com­paratie sunt luate în
considerare un numar de 'n' caractere.
Returneaza o valoare mai mica decât zero daca
's1' este mai mic decât 's2', o valoare mai mare
decât zero daca 's1' este mai mare decât 's2',
respectiv 0 în celelalte cazuri.
Cautarea si extragerea sub-sirurilor
 strchr(s1,s2)- Returneaza toate sirurile 's1' de la prima
aparitie a sirului 's2' si pâna la sfârsit. Daca 's1' nu este
gasit, functia returneaza FALSE. Functia strstr() executa
aceeasi operatie

 stristr(s1,s2)- Returneaza toate sirurile 's1' de la prima


aparitie a sirului 's2' si pâna la sfârsit. Daca 's1' nu este
gasit, functia returneaza FALSE. Sirurile 's1' si 's2' sunt
comparate fara a se tine cont daca literele sunt
majuscule sau minuscule
Cautarea si extragerea sub-sirurilor
 strpos(s1,s2)- Returneaza pozitia (nr. intreg) a
primei aparitii a sirului 's2' în 's1'.Daca 's2' nu
este gasit, functia returneaza FALSE

 strrchr(s1,s2)- Returneaza toate sirurile 's1' de


la ultima aparitie a sirului 's2' si pâna la sfârsit.
Daca 's1' nu este gasit, functia returneaza
FALSE. La comparatie este folosit numai primul
caracter al sirului 's2'
Cautarea si extragerea sub-sirurilor
 strstr(s1,s2)- Returneaza toate sirurile 's1' de la prima
aparitie a sirului 's2' si pâna la sfârsit. Daca 's1' nu este
gasit, functia returneaza FALSE. Functia strchr()
executa aceeasi operatie

 substr(s, start)
substr(s, start, lung)- Returneaza portiunea sirului 's'
specificata de indexul întreg 'start' respectiv de indexurile
'start' si 'lung'. Prima pozitie a sirului este pozitia 0.
Înlocuirea unui sub-sir
 str_replace(cauta, înlocuire, subiect) - Se
cauta în sirul 'subiect' sub-sirul 'cauta'; daca sub-
sirul este gasit, returneaza valoarea 'subiect',
înlocuindu-se prima aparitie a sirului 'cauta' cu
'înlocuire'.

 substr_replace(subiect, înlocuire, start,


lungime) - Returneaza valoarea 'subiect',
înlocuind sub-siruf care începe de la 'start' si
având lungimea 'lungime' cu sirul 'înlocuire'.

S-ar putea să vă placă și