Documente Academic
Documente Profesional
Documente Cultură
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>
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.
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.
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:
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
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.
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.
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 'Text 1' . " legat de " . 'text 2' . "\n"; // Text 1 legat de
text 2
$i = 0;
do {
echo $i;
$i++;
} while( $i <= 10 );
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
<?php
set_time_limit(50); // seteaza limita la 50 secunde