Sunteți pe pagina 1din 7

Introducere in limbajul PHP

Motto: Cine nu are un manual de C++ ar face bine s-i cumpere, iar cine are s-l citeasc !

Introducere
Evoluia reelei Internet este strns legat de evoluia tehnologiilor informatice, a algoritmicii i a limbajelor de programare. O prim revoluionare a spaiului WWW s-a produs odat cu posibilitatea de a introduce imagini n documentele hypertext, prefigurnd transformarea banalului i staticului hypertext n ceea ce astazi numim hypermedia. Inglobarea de grafic, sunet, film n documentele web a fost urmat de posibilitatea includerii de secvente de cod executate de browser (secvene JavaScript sau VBScript), precum si de aplicaii (applet-uri) Java. Modul de afiare al documentelor a putut fi apoi controlat mai precis prin utilizarea foilor de stil (Cascading Style Sheets). Dezvoltarea conceptelor i tehnologiilor web a avut loc i n direcia dinamizarii coninutului documentelor hypermedia, prin apariia de limbaje pentru programarea aplicaiilor web server-side (aplicaii executate de ctre server-ul gazd) Web-ul actual a evoluat n direcia proiectrii unor situri capabile sa-i actualizeze coninutul n mod dinamic, de la or la or, care s ofere modaliti multiple de interaciune cu vizitatorul (setarea caracteristicilor paginii n funcie de preferinele utilizatorului, afiarea coninutului n funcie de necesitaile informaionale ale vizitatorului, participarea la discuii n forumuri, exprimarea parerii despre un anumit subiect prin intermediul sondajelor, cumprarea de produse din magazine virtuale, e.t.c), asigurnd n acelai timp un grad ridicat de securitate (accesul pe baz de autentificare a utilizatorului prin metode sigure). Cei care doresc s se iniieze n tainele realizrii siturilor dinamice pot gsi un sprijin real n aceast serie de articole dedicat limbajului PHP. Hai c m-ai plictisit ! Spune odat ce este PHP ? PHP este o soluie simpl pentru a genera pagini web dinamice. La nceputuri se foloseau limbaje cum ar fi C sau fiiere de comenzi Unix/Linux, executate de interpretorul de comenzi al sistemului de operare (un exemplu este celebrul BASH Borne Again Shell). Aceste aplicaii se mai numesc i scripturi CGI (Common Gateway Interface). Au aprut apoi limbaje precum PERL, Pithon, PHP, ASP, JSP etc. Limbajul PHP are ns avantajul simplitii i a independenei de sistemul de operare. PHP este un limbaj de programare multi-platforma, asa incat un cod scris in Windows va fi la fel de bine interpretat de un server Unix. Acest lucru se poate dovedi util intru-cat mediul Windows pune la dispozitie o gama mai larga de editoare precum si capacitati mai bune i mai prietenoase de testare. PHP se aseamana din multe puncte de vedere cu C, asa c cei ce cunosc acest limbaj nu vor avea prea multe probleme in nsuirea conceptelor din PHP (asta am zis-o aa ca s justific motto-ul). La fel ca multe alte proiecte software importante, PHP s-a nscut sub forma unui mic utilitar cu care trebuia s rezolve o problem simpl i particular. n 1995, un programator pe nume Rasmus Lerdorf i-a publicat CV-ul n pagina sa Web. Pentru ca s poat urmri cine i-a vizitat pagina, Rasmus a introdus n pagin un marcaj special i a scris n Perl un script CGI care s colecteze informaii despre vizitatori, pe care apoi le scria ntr-un fiier jurnal (log). A botezat acest cod PHP (Personal Home Page) tools. Mai apoi, n cadrul unui proiect "de serviciu", a trebuit s realizeze o interfa ntre clienii de pe Web i o baz de date. A recurs la aceeai idee: taguri HTML proprii, procesate de un script CGI (de data aceasta scris n C) care le nlocuia cu coninutul care

trebuia inserat n pagin. A numit aceste taguri "Form Interpreters" (FI) deoarece rolul lor era de a prelua datele transmise prin formulare HTML i de a le transforma n variabile simbolice pe care le folosea apoi pentru interogarea bazei de date. Apoi a reunit codul PHP cu FI i l-a fcut public sub numele PHP/FI (acesta purtand i numele de PHP v. 2.0). Primii pai fiind fcui, a urmat contribuia comunitai programatorilor, care au dus la dezvoltarea PHP/FI in regim open source.. Numele PHP s-a pstrat, dar semnificaia sa a devenit alta, de la o mic aplicaie ce rezolva o problem particular a devenit un limbaj de programare a scripturilor server-side foarte solid, cu facilitai multiple (peste 1000 de funcii, implementat pe numeroase platforme, conlucrnd cu toate serverele Web importante i dispunnd de interfee pentru toate majoritatea bazelor de date utilizate). Popularitatea sa a crescut nencetat, statisticile estimnd c PHP este folosit n peste cteva milioane de domenii web. Ce software este necesar pentru a scrie aplicaii PHP ? PHP este un limbaj de scripting server-side, adic aplicaiile rezultate sunt executate prin intermediul serverului Web de catre un interpretor PHP. Pentru a putea scrie pe calculatorul de acas aplicaii PHP, avei nevoie de: 1. Interpretorul PHP i bibliotecile aferente. PHP a ajuns astazi la versiunea 5.0, dar v putei mulumi i cu o versiune PHP 4.3, care este stabil i, cel puin deocamdat, suficient pentru necesitaile unui inceptor 2. Un server Web, care s simuleze un mic Internet pe calculatorul dvs. Personal v recomand Apache, dar putei utiliza i IIS, care este nglobat n versiunile actuale de Windows 3. Un server de baze de date, pentru c aplicaiile web ar fi foarte greoaie, ineficiente i nesigure n lipsa unui sistem de gestiune a bazelor de date. Aici v recomand MySQL, pentru simplitate, uurina n utilizare i, deloc de neglijat, pentru faptul c este gratuit. Vestea bun este c nu va trebui s instalai aceste componente separat, n afara cazurilor cnd avei destul timp de pierdut sau dac suntei un mptimit al configurrii serverelor web (caz n care v recomand s nu mai pierdei vremea cu citirea acestui articol). Putei descrca de pe Internet distribuii ce conin la pachet modulele enumerate mai sus, instalarea i configurarea facndu-se automat prin lansarea unei aplicaii setup. O astfel de distribuie este PHPdev5, care se poate descrca de la adresa http://www.firepages.com.au Pentru mai multe amanunte despre fiecare dintre componentele enumerate putei vizita: o www.php.net - pagina oficial a comunitaii PHP o www.apache.org informaii i distribuii ale serverului web Apache o www.mysql.com informaii i distribuii pentru serverul de baze de date MySQL Dup ce ai instalat cu succes distribuia PHPdev5 pornii mediul de dezvoltare printr-un simplu dublu-click pe iconia de pe desktop. Dac mediul este funcional se ncarc n browser pagina de start cu adresa: http://localhost/phpdev . Asta inseamna ca puteti trece la treaba ! Ca editor pentru scripturi poate fi folosit orice editor de texte, extensia fisierelor fiind "php".

Cum se executa un script PHP ? Pentru a rula un script PHP, trebuie sa introduceti adresa fisierului in browserul web si sa-l executati ca si cum ar fi un fisier HTML. Serverul va interpreta codul (lansand interpretorul PHP) si va afisa doar rezultatul comenzilor introduse. Privind sursa unui program PHP din browserul web, veti observa ca nu mai apare nici una din comenzile date, ci doar un simplu fisier HTML. Spre deosebire de alte limbaje de scripting, care inglobeaza codul HTML necesar afisarii, PHP este el insusi inglobat in codul HTML. Asadar fisierul PHP are aceasi structura cu a unuia HTML, dar unde este nevoie de facilitatile PHP apar tagurile speciale ce marcheaza inceputul si sfarsitul codului acestuia. O secventa de cod PHP trebuie inclusa in marcajul <? aici se scriu instructiunile PHP ?> Iata pasii ce trebuie urmati pentru a crea un prim document PHP: Pas 1. Deschideti folderul c:\phpdev5\www. Aici este locul in care trebuie sa se afle documentele web pentru a putea fi accesate prin intermediul serverului Apache (pentru alte servere se vor consulta documentatiile aferente) Creati un folder numit exemple in care sa salvati scripturile dvs. Pas 2. Creati un fisier text cu numele primul_script.php si deschideti-l pentru editare cu orice editor de texte rudimentar (notepad, wordpad). Exista si editoare specializate care dispun de facilitati pentru editarea de cod PHP (PHPedit, Quanta, EditPlus, PHP Eclipse, sau chiar Macromedia Dreamweaver), dar nu veti simti deocamdata avantajele acestora. Pas 3. Introduceti in fisier urmatorul continut: <html> <head><Title>Primul script PHP</Title> </head> <body> <? echo "Iata primul script PHP ! Minunat !"; ?> </body> </html> Pas 4. Salvati modificrile fcute n fiier i deschidei browserul web. La adres tastai: http://localhost/exemple/primul_script.php i surpriz, browserul afieaz textul Iata primul script PHP ! Minunat ! Pas 5 Daca doriti, putei face modificri in fiierul primul_script.php, salvai i reluai pasul 4. Observaii: 1. O greeal frecvent ntlnit este aceea de a deschide din browser sursa fiierului (view>source) i de a incerca modificarea acesteia. Rezultatul este o pcleal n toat regula, deoarece browserul afieaz efectul execuiei unui script i nu sursa acestuia !

2. Alt greeal se comite atunci cnd, n intenia de a executa un script, se execut dublu-click pe fiierul ce conine scriptul. Ceea ce se afeaz este chiar sursa scriptului respectiv, deoarece browserul incarc fiierul in mod offline, ca pe orice fiier html aflat pe harddisk (adresa documentului va fi ceva de genul C:\phpdev\www\exemple\primul_script.php, iar acesta va fi tratat ca fiier text i afiat ca atare). Prin urmare, pentru a executa un script PHP, acesta trebuie incrcat n browser specificnd o adres de forma http://localhost/dir1/dir2/.../dir_n/fisier.php care permite serverului web s lanseze interpretorul PHP i s afieze rezultatele execuiei n fereastra navigatorului.. 3. Denumirile date scripturilor trebuie s fie ct mai sugestive, s descrie fr echivoc aciunea pe care o realizeaz. Se recomand folosirea literelor mici, cifrelor i a caracterului _ (underscore) pentru denumirile fiierelor. Dac lucrai n Windows nu se fac diferene ntre majuscule i minuscule, dar n momentul n care vei plasa scriptul pe un server Linux/Unix vei avea numai neplceri (n mediile Unix se face diferen ntre majuscule i minuscule, deci un script cu numele MyScript.php nu va putea fi incarcat n browser prin http://adresa_server/myscript.php)

Elemente de baz ale limbajului PHP


A. Variabile, tipuri de date, operatori, expresii Limbajul PHP se deosebete de alte limbaje (C, Pascal) prin faptul c variabilele nu trebuie declarate explicit. Se consider c o variabil ia natere la prima atribuire, iar tipul variabilei este dat de tipul expresiei atribuite ultima dat. Identificatorul utilizat pentru variabilea PHP trebuie s aib ca prim caracter caracterul $ urmat de un numr arbitrar de litere, cifre sau caracterul underscore. Primul caracter (de dup $) trebuie s fie o liter sau underscore. PHP este un limbaj case-sensitive (se face diferenta intre majuscule si minuscule), spre exemplu $V i $v sunt doua variabile distincte. Exemplul 1 <? Al_doilea_script.php /* calculez aria unui dreptunghi daca se cunosc lungimea si latimea */ $L=100; //lungimea $l = 20; //latimea $Aria=$L*$l ; echo Aria este = $Aria; ?>

Comentarii: 1. Am utilizat 3 variabile: $L pentru lungime, $l pentru latime i $Aria pentru calculul ariei dreptunghiului. 2. Remarcai modul de afiare a rezultatului utiliznd comanda echo. Daca sirul de caractere afisat de comanda echo mai contine si variabile, in sirul de iesire se vor afisa valorile acestora. Acest script are deficienta ca nu permite utilizarea unor valori introduse de utilizator pentru lungime si latime. Rescriem scriptul astfel: <? //Al _doilea_script_v2.php /* calculez aria unui dreptunghi daca se cunosc lungimea si latimea */ $Aria=$L*$l ; echo Aria este = $Aria; ?>

Apelul acestui script va fi: http://localhost/exemple/aldoileascript.php ? L=10 & l=5 Valorile variabilelor $L si $l se vor lua din URL ul scriptului. A doua modalitate de a trimite date unui script se bazeaza pe formularele Html si va fi detaliata in numarul viitor. De asemenea, un script poate prelua date dintr-un fisier text sau dintr-o baza de date. Tipurile de date uzuale utilizate in PHP sunt: Nume tip
Boolean

Descriere

Comentarii/Exemple

Tipul logic. Este cel mai simplu tip de <? date, multimea de valori fiind {true, $OK = true; false}. ?> Variabila $OK este o variabila logica, valoarea ei initiala fiiind true.

Integer

Floating Point

Tipul intreg. Multimea de valori este {-2,-1,0, 1, 2, }. Constantele intregi pot fi scrise in bazele 10, 8, 16. Constantele hexazecimale trebuie prefixate de 0x, iar cele octale de 0 Tipul real.

<? $x = -123; // constanta zecimala $oct = 0271; // constanta octala $hexa= 0xAA12 // constanta hexazecimala ?>
<?php $a = 1.234; $b = 1.2e3; $c = 7E-10; ?>

String

Tipul sir de caractere. Un sir de caractere este o succesiune de 0 sau mai multe caractere din codul ASCII. O constanta sir de caractere poate fi

<? $nume = Ion Gigi; $prenume =Popescu Vasile; echo Aria este $aria;

?> inclusa intre apostrofuri sau ghilimele. Sirurile incluse intre ghilimele pot contine secventele escape de forma \caracter. Mai multe amanunte in capitolul dedicate sirurilor de caractere

Tipurile tablou (array) si obiect (object ) vor fi prezentate pe larg in sectiunile corespunzatoare lor din episoadele viitoare. Operatorii limbajului PHP sunt: Operatori
Aritmetici: +,-,*, /, %

Comentariu
Adunare, scadere, inmultire, impartire, modulo aritmetic (restul impartirii intregi)

Exemplu
<? $a = 10; $b = 8; echo Suma=$a + $b; echo Produsul=$a * $b; echo Diferenta=$a - $b; echo Raportul=$a / $b; echo Restul impartirii lui a la b=$a % $b; ?>

Relationali: <,>, <=, >= !=, <> == De atribuire: = +=, *=,

Diferit de egal Atribuire simpla Atribuire compusa Exp: Operatorul . (punct) este utilizat pentru concatenarea a doua siruri de caractere. Operatorul .= concateneaza la variabila sir din stanga atribuirii sirul aflat in partea dreapta <? $nume=Popescu; $prenume=Ion; $s .=$nume; $s.= .$prenume // $s va contine numele si prenumele //separate prin spatii ?>

Incrementare/decrementare Sintaxa: ++, -++$v - preincrementare mareste valoarea variabilei $v cu o unitate, inainte de utilizarea acesteia in expresia in care apare --$v - predecrementare micsoreaza valoarea variabilei $v cu o unitate, inainte de utilizarea acesteia in expresia in care apare $v++ - postincrementare mareste valoarea variabilei $v cu o unitate, dupa ce aceasta a fost utilizata in expresia in care apare $v-- - postdecrementare

<? $v = 1; $a = ++$v+1; //$a va avea valoarea 3 //iar $v va fi 2 $b=1+$v--; //$b are valoarea 3 //iar $v devine 1, dar //dupa utilizarea ei in atribuire ?>

micsoreaza valoarea variabilei $v cu o unitate, dupa ce aceasta a fost utilizata in expresia in care apare Operatori logici and , && or, || not, ! xor SI logic SAU logic Negatie logica SAU exclusiv Dublarea operatorilor logici permite programatorilor sa utilizeze acei operatori cu care sunt familiarizati din alte limbaje

Restul operatorilor fie vor fi detaliati mai tarziu, fie se considera ca se poate trai si fara ei. Operatorii specifici PHP, utilizati in lucrul cu siruri de caractere si tablouri vor fi prezentati pe larg in numerele viitoare ale revistei. Pentru o lista completa a operatorilor se poate consulta manualul PHP sau un manual de C++. Tabelul urmator prezinta precedenta operatorilor in PHP, adica ordinea in care sunt aplicati operatorii in cadrul unei expresii, precum si modul de evaluare (de la stanga la dreapta, de la dreapta la stanga) Precedenta operatorilor: Asociativitate stanga Stanga Stanga Stanga dreapta dreapta Stanga Stanga Stanga Stanga Stanga Stanga , Or Xor And Print = += -= *= /= .= %= &= |= ^= <<= >>= ?: || && | ^ & == != === !== < <= > >= Stanga Stanga Stanga dreapta Dreapta << >> +-. */% ! ~ ++ -- (int) (float) (string) (array) (object) @ [ New In episodul urmator voi prezenta instructiunile PHP si modalitatea de a transmite date catre un script PHP dintr-un formular HTML.

Operatori