Sunteți pe pagina 1din 13

Atestat info

Contents
Introducere in PHP................................................................................................. 3
Taguri PHP si Instructiuni....................................................................................... 5
Comentariile in PHP............................................................................................ 7
Expresii. Operatori................................................................................................. 7
Expresii............................................................................................................... 7
Operatori............................................................................................................ 8
1. Operatori de comparare............................................................................8
2. Operatorul ternar...................................................................................... 8
Operatori de incrementare/decrementare.......................................................9
Operatori pentru siruri de caractere................................................................9
Operatorul de executie ` `............................................................................... 9
Siruri de caractere............................................................................................... 10
Siruri de caractere delimitate de ghilimele duble.............................................10
Siruri de caractere delimitate de ghilimele simple...........................................10
Siruri de caractere delimitate cu notatia speciala <<<...................................10
Operatii cu siruri de caractere..........................................................................11
Lungimea sirului............................................................................................ 11
Cautarea unei secvente................................................................................. 11
Afisarea unui subsir....................................................................................... 11
Concatenarea (legarea) sirurilor....................................................................11
Alte operatii cu siruri..................................................................................... 12
1. Transformarea sirului..................................................................................... 12
2. Impartirea (spargerea) sirului...........................................................................12
3. Interpretarea sirului....................................................................................... 12
Structuri repetitive in PHP....................................................................................12
Structura repetitiva FOR...................................................................................12
Structura repetitiva While.................................................................................12
Structura repetitiva Do While...........................................................................13
Instructiuni uzuale PHP..................................................................................... 13
Functia mail().................................................................................................... 13
Functii matematice........................................................................................... 13
Functia set_time_limit().................................................................................... 14
Introducere in PHP
PHP reprezinta un limbaj de programare ce permite modificarea paginilor web inainte ca
acestea sa fie transmise de server catre browserele utilizatorilor.

PHP poate genera continut HTML pe baza unor fisiere existente sau pornind de la zero, poate
sa afiseze o imagine sau orice alt continut accesibil prin web, sau sa redirectioneze
utilizatorul catre alte pagini. In cadrul acestui proces, PHP poate consulta baze de date, fisiere
externe sau alte resurse, poate trimite email-uri sau executa comenzi ale sistemului de
operare. Intrucat procesarea se realizeaza la nivelul serverului web, inainte ca paginile web sa
ajunga in browser, PHP este considerat un limbaj de programare server-side.

Modul in care PHP genereaza continut pentru o pagina ce va fi afisata de browser este prin
instructiunile delimitate de etichetele <?php si ?>. Astfel, orice se afla intre aceste tag-uri va fi
considerat cod-sursa si va fi executat de interpretorul PHP si inlocuit cu rezultatul executiei.
Ce este in afara tag-urilor ramane neschimbat si este transmis catre browser. Spre exemplu,
avem o pagina ca mai jos.

1. <html>

2. <body>

3. Azi e <?php print date(


'd.m.Y' ); ?>

Fiind un limbaj de programare de tip interpretat, inseamna ca fisierele ce contin cod-sursa


PHP sunt interpretate ca atare in momentul executiei, de catre PHP. Asadar, pentru executia
unei portiuni de cod PHP este folosit codul-sursa asa cum a fost scris el, si nu este
transformat intr-o forma intermediara (binara sau cod-masina) cum se intampla la Java sau
C/C++. Acest lucru ofera flexibilitate, intrucat orice modificare a fisierelor sursa va fi aplicata
imediat la urmatoarea executie, fara alti pasi intermediari. Exista si dezavantaje la acest mod
de lucru, cum ar fi timp mai mare de executie a codului, dar in anumite situatii avantajele pot
cantari mai mult decat dezavantajele. Datorita faptului ca limbajul este unul interpretat, PHP
mai este numit si limbaj de scripting.

In sens mai larg, PHP este un limbaj de programare universal (sau general-purpose), oferind
toate facilitatile oricarui limbaj avansat. Codul scris in PHP poate face aproape aceleasi
lucruri ca un cod de C/C++ sau Java. Cu toate astea, PHP s-a impus in zona web, ca limbaj
server-side, ce extinde functionalitatea serverelor web. Din acest motiv programarea in PHP
mai este denumita si programare web sau programare web server-side.
In acest ghid ne vom axa pe programarea in PHP ca limbaj server-side. Desi notiunile
prezentate nu sunt legate de un mod de lucru anume si majoritatea exemplelor pot fi
executate si din linie de comanda, vom presupune ca PHP va fi folosit doar pentru
programarea web, ca modul al unui server web.

Interpretorul PHP actioneaza ca o componenta aditionala, o extensie a serverului web care


este invocata de ori cate ori o pagina PHP este accesata. Aceasta componenta proceseaza
codul-sursa din pagina si apoi transmite rezultatul inapoi la web-server, ajungand in final in
browserele utilizatorilor. Acest proces este prezentat in imaginea din dreapta de mai jos.

In cele de urmeaza va fi explicat mecanismul de functionare a interpretorului PHP si cum


intervine el in procesul de furnizare a paginilor web.

Din imaginile de mai sus, se observa ca atunci cand nu exista un interpretor PHP, paginile
sunt transmise direct catre utilizatori asa cum sunt salvate pe disc, fara modificari. Pentru a
actualiza continutul acestora, este nevoie de interventie directa asupra lor si salvarea
modificarilor pe server. Aceste pagini sunt denumite"pagini statice".

Spre exemplu, presupunand ca avem o pagina statica ce afiseaza membrii unei comunitati, la
fiecare inscriere a unei noi persoane, pagina ar trebui modificata manual de catre cineva cu
acces la serverul web. Lucrurile se complica daca acea lista este personalizata, cu trimiteri
catre alte informatii (cum ar fi detalii de contact pentru fiecare, etc) sau cu un design
intortocheat. Toate aceste probleme pot fi rezolvate cu ajutorul PHP.

Folosind o secventa de cod PHP am putea prelua lista de membri dintr-o baza de date,
eliminand problema actualizarii - nu va mai fi nevoie sa se modifice pagina odata cu fiecare
membru nou, scriptul PHP va afisa in mod automat noile persoane adaugate in baza de date.
Este rezolvata si problema linkurilor personalizate, sau a designului - toate elementele
specifice unei persoane pot fi generate in mod automat.

Aceste pagini sunt, asadar, modificate de catre PHP la momentul accesarii lor de catre
utilizatori. In functie de parametrii primiti si de secventa de cod definita de programator,
aceasi pagina poate avea continut diferit. Aceasta proprietate este denumita dinamism, iar o
astfel de pagina este considerata pagina dinamica.

Taguri PHP si Instructiuni

Codul PHP trebuie inclus in fisiere cu extensia .php ce vor fi deservite utilizatorilor finali si
trebuie delimitat de restul continutului prin tagul de inceput <?php si tagul de sfarsit ?>.
Practic tot ce se afla in interiorul acestor etichete va fi interpretat ca fiind cod-sursa PHP (cod
ce va fi executat de interpretorul PHP). Textul din afara celor 2 taguri este lasat neschimbat,
fiind ulterior interpretat de browser. Se pot folosi si alte etichete in functie de configuratia
serverului web, dar acestea nu sunt recomandate.

<?php
/* forma recomandata */
?>
<script language="php">
/* forma disponibila oricand, putin folosita */
</script>
<?
/* taguri scurte, acceptarea lor de catre web-server depinde de configurare */
?>
<%
/* taguri in stilul asp, acceptarea lor de catre web-server depinde de
configurare */
%>
Codul PHP este format din instructiuni - comenzi date catre interpretor, in urma carora se
executa ceva. Asa cum s-a mai spus, PHP este folosit in principal pentru a genera cod HTML,
asa ca de cele mai multe ori instructiunile folosite sunt cele de afisare. In aplicatii mai
complexe se pot insa folosi si instructiuni de conectare la bazele de date, de
citire/scriere/manipulare fisiere, intructiuni de trimitere email-uri si altele. Instructiunile se
pot grupa in blocuri delimitate de acolade { }. Aceste blocuri, numite si "instructiuni
complexe" se comporta ca si cum ar fi o singura instructiune (vezi mai jos exemple de
blocuri).

Toate instructiunile (in afara de blocuri) trebuie sa fie terminate cu punct si virgula ( ; ). Lipsa
acestuia genereaza o eroare.

In multe din scripturile scrise de incepatori (si nu numai) continutul rezultat in urma executiei
este un text (de obicei in format HTML). Pentru a obtine acest text, secventele de cod trebuie
sa contina instructiuni explicite care sa "spuna" intrepretorului ce anume trebuie afisat.

Instructiunile de afisare sunt print, echo si printf. Primele doua sunt echivalente si fac acelasi
lucru (exista unele diferente de forma, vezi exemplul de mai jos, dar poate fi folosita oricare
dintre ele); printf este folosita mai rar datorita sintaxei oarecum greoaie.

Rezultatul unui script PHP este de cele mai multe ori un text simplu in format HTML. Cu alte
cuvinte, in majoritatea cazurilor PHP returneaza o pagina HTML ce va fi afisata in browser.
La inceput, acest lucru poate genera confuzii, intrucat sursa HTML este diferita de ceea ce se
afiseaza efectiv in browser.

Comentariile in PHP
Comentariile sunt portiuni de cod care nu se executa. Sunt folosite de programatori de regula
pentru a da diverse explicatii despre logica aplicatiei, variabile si altele. Comentariile nu
afecteaza executia unui script si pot fi sterse din cod fara nici un effect. Acestea nu pot fi
imbricate (inserate unele in altele).

Expresii. Operatori
Expresii
Expresiile sunt constructii ale limbajului PHP care au o valoare. O expresie poate fi un sir de
caractere, un numar, o variabila sau chiar o constructie mai complexa (cum ar fi un apel de
functie). Ideea de baza este ca orice poate fi evaluat la o valoare este considerat a fi expresie.
Limbajul PHP este construit in jurul expresiilor, iar acest concept, desi ignorat de multi
programatori, este foarte important in intelegerea corecta a modului in care interpretorul PHP
evalueaza si executa secventele de cod.
Cele mai simple expresii in PHP sunt, asa cum am amintit, numerele (denumite si number
literals) sau sirurile de caractere (string literals). Acestea au o valoare ce poate fi determinata
in orice moment, iar aceasta valoare poate fi folosita in operatii (cel mai adesea, la atribuiri).
In urma unei atribuiri, o variabila va prelua valoarea expresiei atribuite, devenind ea insasi o
expresie.
$a = 1;
1 este o expresie (number literal) si $a este la randul ei o expresie (variabila). Mai mult decat
atat, in PHP instructiunea de atribuire este in sine o expresie, in sensul ca returneaza o
valoare; astfel $a = 1 va returna valoarea expresiei atribuite (1, in acest exemplu). In acest
context, putem scrie.
Nu doar atribuirile sunt expresii. Apelurile de functii (predefinite sau definite de programator)
sunt considerate expresii si ele, intrucat returneaza o valoare. De asemenea, asocierea mai
multor expresii, folosind operatori, genereaza o noua expresie.
Un alt lucru important referitor la expresii este ca valoarea lor se poate modifica in functie de
context. Mai exact, se modifica tipul de date de care apartine expresia (din string in numeric,
din numeric in logic, etc). Astfel, daca intr-o operatie este necesar un anumit tip de date, iar
expresia folosita are alt tip, atunci valoarea este convertita in mod automat. Asta poate fi un
lucru bun, sau poate introduce erori in cod; de aceea este important sa se acorde o atentie
sporita valorilor expresiilor, in special atunci cand se combina tipuri de date diferite.
Expresiile sunt fundamentul limbajului PHP si aproape orice este o expresie. Ele apar peste
tot in codul sursa si pot fi folosite in atribuiri, ca parametrii ai functiilor sau pentru
specificarea conditiilor din structurile de control. In cele ce urmeaza vor fi prezentati
operatorii limbajului PHP care pot fi aplicati unor expresii si care genereaza (prin compunere)
noi expresii.

Operatori
Operatorii sunt elemente de limbaj ce se aplica expresiilor si dau nastere unor noi expresii.
Exista mai multe tipuri de operatori, cu sintaxa si roluri diferite. Toti operatorii vor determina
conversia expresiilor componente atunci cand acestea au tipuri diferite de date. Regula de
conversie difera de la un tip de date la altul si de la un operator la altul. Astfel, avem
urmatoarele tipuri de operatori:
1. Operatori de comparare

Operatorii de comparare sunt folositi de cele mai multe ori in cadrul instructiunii if pentru a
exprima conditia ce trebuie verificata.

2. Operatorul ternar
Un operator care are 3 termeni si a carui evaluare returneaza o valoare, avand urmatoarea
sintaxa:

(conditie ? adevarat : fals )


Adevarat, fals si conditie nu sunt instructiuni ci expresii (variabile, constante, stringuri, etc)
iar operatorul returneaza o valoare si nu o variabila.

print ( 1 == 2 ? 'egal' : 'ne-egal' ); // afiseaza ne-egal


$a = ( 1 == 2 ? 'egal' : 'ne-egal' ); // $a va avea valoarea
ne-egal

Operatori de incrementare/decrementare
Incrementare inseamna cresterea valorii, de obicei cu o unitate, iar decrementarea este
operatia inversa. PHP ofera (ca si C/C++) posibilitatea ca incrementarea/decrementarea sa se
faca printr-un operator, fara sa fie nevoie de o instructiune separata.

$a = 1; // initializare

// pentru a-l creste pe $a cu o unitate, normal am scrie:


$a = $a + 1;

// folosind operatorul de incrementare scriem:


$a++;
// sau
++$a;

// pentru a afisa noua valoare, putem aplica operatorul direct din


instructiunea print:
print ++$a;

Dupa cum se poate observa, putem scrie $a++ si ++$a. Diferenta este ca atunci cand ++
apare inainte de variabila, PHP face mai intai incrementarea si apoi returneaza noua valoare.
Cand ++ apare dupa, se returneaza valoarea actuala (ne-incrementata) si apoi se creste cu o
unitate.

Operatori pentru siruri de caractere


In aceasta categorie sunt inclusi 2 operatori ".=" (operator de atribuire prin concatenare si "."
Punctul (.) este operatorul de concatenare (legare) stringuri.

Operatorul de executie ` `
Operatorul de executie permite rularea unor aplicatii sau comenzi ale sistemului de operare
direct din PHP. Rezultatul executiei este capturat de script si poate fi prelucrat sau afisat.
Operatorul ` ` este echivalent cu functia shell_exec.

# in ambele situatii de mai jos este afisat continutul


directrului curent
$output = `ls -al`;
echo "<pre>$output</pre>";

$output = shell_exec('ls -al');


echo "<pre>$output</pre>";
Siruri de caractere
Sirurile de caractere sunt bucati de text, bine delimitate, folosite in codul-sursa pentru diferite
scopuri. PHP prezinta particularitati in modul in care sunt folosite string-urile, dupa cum se
poate vedea in exemplele de mai jos.

Important! Sirurile de caractere sunt expresii (entitati ce au si returneaza o valoare). Asadar,


un string poate fi folosit, pe langa, afisare, in atribuiri, la verificari, etc. In exemplele ce
urmeaza s-a optat pentru afisarea sirurilor

Siruri de caractere delimitate de ghilimele duble


Sirurile delimitate prin ghilimele duble au particularitatea ca pot interpreta
variabilele si caracterele speciale din interiorul lor. Astfel, la evaluarea textului,
variabilele existente in interiorul lui sunt inlocuite cu valoarea lor iar rezultatul
final este returnat.
<?php
O alta particularitate a acestor siruri o reprezinta folosirea backslash-ului
$a = 'valoarea
(caracterul \).variabilei'; // definesc
Acesta are o functie speciala deomarcare
variabila
a anumitor caractere care
print nu pot fi incluse
'Textul in mod
definit cunormal intr-un text
ghilimele (din cauza
contine $a';ca//
sunt ele insele
Textul definit cu
caractere
ghilimele speciale).
contine $a Din acest motiv backslash-ul poarta numele de escape
character.

print Siruri
'Poreclade caractere
ta e Kelu\' delimitate
?'; // sir dedelimitat
ghilimelede simple
ghilimele simple ce
Sirurile
contine un delimitate
apostrof prin ghilimele simple nu permit interpretarea variabilelor
continute si nici a caracterelor speciale cu exceptia \' si \\.
print 'Text cu backslash \\'; // sir delimitat de ghilimele simple ce
contine un backslash

print 'Alte escape chars nu sunt interpretate \n \t \b'; // textul este


afisat ca atare
?>
Siruri de caractere delimitate cu notatia speciala <<<
Aceste siruri de caractere au avantajul ca nu necesita marcarea (escaparea) delimitatorilor
prin \' sau \". In rest, aceste stringuri sunt tratate in acelasi mod ca cele delimitate de ghilimele
duble, in sensul ca permit interpretarea variabilelor si a altor caractere speciale.

Operatii cu siruri de caractere


Lungimea sirului
$s = "acesta este un text";
$sir = "stiu PHP stiu HTML stiu CSS";

# ce lungime are sirul? (numarul de caractere)


print strlen( $s ); // 19

Cautarea unei secvente

# verific daca un cuvant sau text (in cazul de fata


cuvantul 'PHP') apare in
# sirul exprimat prin variabila $sir
if( strstr( $sir, 'PHP' ) !== false ) print 'gasit';
else print "nu am gasit";

# pentru a nu tine cont de litere mari/mici se foloseste


stristr
if( stristr( $sir, 'phP' ) !== false ) print 'gasit';
Afisarea unui subsir

# afisez o sectiune din sir


print substr( $sir, 0, 4); // stiu
print substr( $sir, 5 ); // PHP stiu HTML stiu CSS
print substr( $sir, 5, -3 ); // PHP stiu HTML stiu
print substr( $sir, -3 ); // CSS

# returnez doar un caracter din string


print
fjfj $sir{5}; // P
print $sir{ strlen($sir)-1 }; // S

Concatenarea (legarea) sirurilor

print 'Text 1' . " legat de " . 'text 2' . "\n"; // Text 1 legat de
text 2

Alte operatii cu siruri


// se 1.
potTransformarea
concatenasiruluisiruri rezultate din alte functii sau din
variabile
2. Impartirea (spargerea) sirului
3. Interpretarea sirului

instructiune1 este o instructiune de executat la inceput


Structuri repetitive in PHP
conditie este o expresie
O structura care
repetitiva daca
este este evaluata
o secventa cace
de cod adevarata
permite va determina
realizarea repetarea
repetata cicluluioperatii
a aceleiasi - este
denumita
de ungeneric
anumitconditia
numar de deori.
repetare
O structura repetitiva este definita de 2 elemente: operatia care
este executata si conditia de oprire a executiei. In unele cazuri se cunoaste si numarul de
instructiune2 se va executa la fiecare pas al repetarii
executii (sau iteratii).
instructiune3 reprezinta operatia efectiva care se repeta in cadrul FOR-ului
Structura repetitiva FOR
In general, [instructiune1]
Se foloseste este o se
atunci cand expresie de initializare
cunoaste dinaintede forma $ide
numarul = 1,repetitii
conditia(numarul
de repetarede
este de
formapasi
$i <=cenumarul
se vor de
executa). Are urmatoarea
pasi si [instructiune2] estesintaxa:
o expresie de incrementare $i++.
for( [instructiune1] ; [conditie] ; [instructiune2] )
{ [instructiune3] }
unde:
Structura repetitiva While
Instructiunea while este folosita atunci cand nu se cunoaste dinainte numarul de
executii. Are o forma mai intuitiva decat for si multe persoane o considera mai
usor de folosit. Diferenta dintre while si for este aceea ca prima este mai
generala si mai flexibila. Se poate chiar afirma ca for este o situatie particulara a
unei structuri while. Sintaxa este urmatoarea:

while( [conditie] ) { [instructiune] }

Structura repetitiva Do While


Diferenta fata de while este ca verificarea de face la final, dupa ce se executa cel
putin o data secventa de cod. O traducere in cuvintele noastre ar fi: "executa
secventa si, cat timp conditia este adevarata, repet-o".

Structura do... while are urmatoarea forma:

$i = 0;
do {
echo $i;
$i++;
} while( $i <= 10 );

Instructiuni uzuale PHP

Functia mail()

PHP poate trimite emailuri daca pe serverul curent este instalata si o aplicatie de email (un
server de email). Nu este nevoie de configurari suplimentare atat timp cat serverul de email
nu are restrictii si poate fi accesat de aplicatiile locale. Intr-o instalare pe calculatorul
personal, cum este cea descrisa in primele pagini ale acestui tutorial, nu este posibila
trimiterea de mesage email, iar functia mail va returna o eroare. Pe un web-server configurat
complet si corect, cum sunt serverele ce ofera gazduirea site-urilor, functia mail functioneaza
corect.
Functii matematice
Limbajul PHP dispune de majoritatea functiilor matematice uzuale. Cateva dintre ele sunt
prezentate mai jos cu titlu exemplificativ.

<?php
echo abs(-7); // functia "valoare absoluta", afiseaza 7
echo sin(60); // functia "sinus", afiseaza -0.304810621 ...
echo decbin(12); // returneaza reprezentarea binara a numarului,
afiseaza 1100
echo base_convert('7DB', 16, 10); // returneaza convesia dintr-o baza
in alta, afiseaza 2011
echo round(12.3); // returneaza o rotunjire la cel mai apropiat intreg,
afiseaza 12

echo rand(); // afiseaza un numar aleator


echo rand(10, 70); // afiseaza un numar aleator din intervalul specificat
Functia set_time_limit()
Functia set_time_limit se foloseste pentru a configura timpul maxim cat scriptul curent are
voie sa se execute. Este utila atunci cand codul PHP trebuie sa execute un volum mare de
operatii care ar putea dura cateva zeci de secunde (spre exemplu la un upload de fisiere).
Daca dupa expirarea timpului scriptul inca se afla in executie, serverul va intrerupe executia
fi va returna o eroare.

<?php
set_time_limit(50); // seteaza limita la 50 secunde

set_time_limit(0); // dezactiveaza limita - scriptul poate


rula la nesfarsit
?>

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