TUTORIAL PHP

PHP - Notiuni de baza
PHP este prescurtarea de la Hypertext PreProcessor. Spre deosebire de paginile HTML care puteau fi verificate si pe calculatorul local paginile PHP nu pot fi verificate decat da ca sunt gazduite pe un server web care are instalat PHP. Cand accesam o pagina HTML serverul care o gazduieste trimite pagina HTML catre browser spre afisare. In cazul unei pagini PHP serverul citeste codul PHP, il interpreteaza si genereaza dinamic pagina HTML care este trimisa browserului spre afisare. Acesta este motivul pentru care utilizatorii folosesc PHP pentru construirea uno r pagini cu continut dinamic. Fisierele PHP au extensia php. Puteti scrie astfel de fisiere cu Notepad sau cel mai indicat cu un editor specializat care va indica si numarul liniilor, lucru util la depanarea scripturilor. Verificati ca nu aveti extensiile ascunse (My Computer -> Tools -> Folder Options -> View -> debifati Hide extensions for known file types). Pentru a putea crea fisiere php dati clic dreapta New -> Text Document, apoi il redenumiti nume.php. Cand PHP-ul parcurge un fisier de fapt "citeste" textul pana cand intalneste una din etichetele speciale care-i spun sa inceapa sa interpreteze textul ca pe cod PHP. Se executata codul pana cand este intalnita eticheta de inchidere. Apoi se "citeste" din nou textul mai departe. Acesta este motivul pentr u care se poate adauga cod PHP in interiorul HTML-ului. Important: y in cazul functiilor nu se face diferenta intre utilizarea literelor mari sau mici y pentru variabile se face diferenta intre utilizarea literelor mari sau mici y inchiderea unui rand se face obligatoriu cu caracterul ; y ghilimelele se folosesc pereche "..." sau '...', folosirea lor "...' sau '..." constituie o eroare Codul PHP este delimitat de unul din urmatoarele seturi de etichete de deschidere si inchidere: <?php ?> etichete recomandate <script language="php"?> </script> <? ?> folosirea lor necesita anumite setari pe server <% %> etichete tip ASP, folosirea lor necesita anumite setari pe server Exemplu: cel mai simplu script PHP este: <?php echo "Acesta este un script PHP"; ?> Daca veti verifica functionarea acestui script pe un server veti vedea ca este afisat textul delimitat de ghilimele. Functia echo este folosita pentru afisarea informatiilor delimitate de ghilimele. Nu uitati sa inchideti randul cu ;. Similar functiei echo este functia print. In situatia in care scriptul nu este scris corect PHP -ul va afisa eroarea indicandu-va si locul unde aceasta apare. Erorile sunt afisate doar daca serverul este setat corespunzator (in php.ini este setat display_errors=On si error_reporting=E_ALL). Exemplu: in interiorul scriptului puteti insera si etichete HTML <?php echo "Acesta este un script PHP care contine si etichete HTML"; ?> Exemplu: fisierul PHP poate contine intre etichetele <html> si </html> blocuri PHP delimitate de <?php ?> <html> <head><title>Exemplu0_3</title> </head> <body> Bloc HTML<br> <?php echo "Bloc PHP"; ?> </body> </html>

1

Variabile Variabila este un container de date care poarta un nume si i se poate atribui o valoare care poate fi modificata de mai multe ori sau salvata intr-o baza de date. Numele dat variabilei incepe cu simbolul $ urmat de orice litera mica (a -z) sau mare (A-Z) sau cu caracterul _ dar niciodata cu o cifra si nu poate contine spatii goale. //numar exprimat in sistem zecimal $a=-52. De exemplu: $nume_variabila Este recomandat ca numele variabilei sa fie cat mai sugestiv pentru a evita incurcaturile in timpul scrierii scriptului. Intr-un script puteti folosi mai multe variabile care pot fi adaugate in aceeasi constructie echo.$ziua. Tot ce urmeaza dupa caracterele // sau # este considerat comentariu. In sistem octal numarul trebuie precedat de 0 iar pentru hexazecimal precedat de 0x. Exemplu: atribuim variabilei $program valoarea PHP si apoi o tiparim <?php $program="PHP".". In exemplul urmator browserul va afisa doar proba /* echo "Tutorial"."". $anul="1995". echo "Data nasterii este ".$anul.$luna. numere cu virgula flotanta. De exemplu: // Urmeaza un comentariu in PHP Un comentariu format din mai multe linii este incadrat de /* si */.". hexazecimal sau octal. ?> Exemplu: in aceeasi constructie echo putem folosi text impreuna cu o variabila <?php $luna="iulie". De exemplu: /* Comentariul in PHP scris pe doua linii */ Acest tip de comentariu poate fi folosit si pentru ignorarea unor blocuri PHP. o ptional putand purta si semn (+ sau -). ?> Modificand valoarea variabilei se modifica ceea ce este afisat de browser. echo "Am concediu in luna ".". //numar negativ exprimat in sistem zecimal 2 . ?> In PHP sunt opt tipuri de variabile primitive: y y y patru tipuri scalare: intregi. siruri si boleene doua tipuri compuse: matrice si obiecte doua tipuri speciale: resurse si NULL Intreg (integer) este un simplu numar intreg exprimat in sistem zecimal. $a=2006.".In PHP sunt trei metode prin care se poate adauga un comentariu care evident nu va fi afisat in browser ci are ca scop doar adaugarea de informatii necesare programatorului. */ echo "proba". Exemplu: <?php $ziua="22". echo $program. $luna="12".$luna. echo "PHP"."".

//numar hexazecimal (echivalent cu 29 zecimal) Numerul cu virgula flotanta (float) sau dubla precizie este un numar real care poate fi folosit cu urmatoarea sintaxa: $a=3. $vant=8.$data.'mare'. ?> 3 . //acesta este un sir echo "variabila $a". In aceasta situatie variabilele si caracterele speciale vor fi ignorate.'foc'). litere. //numar octal (echivalent cu 207 zecimal) $a=0x1D. //130 $a=6E+3. //numar zecimal $a=-2. print_r ($matrice). //6000 Exemplu: <?php $temperatura=-5. simboluri si spatii delimitate intre doua ghilimele simple sau duble."m/s". //variabila $a echo "rand1 \n rand2".'lac').14. Exemplu: <?php $nume="Ivan Paul".$nume.3e2.'aer'.5. $data="19 iulie 2005". ?> Sirul (string) este o variabila care contine o combinatie de numere. //numar zecimal negativ $a=1. Exemplu: cream o matrice si ii tiparim elementele folosind functia print_r <?php $matrice = array('ocean'."<sup>o</sup>C iar vantul bate cu ".$temperatura. O matrice se creaza folosind functia array(): $matrice = array('apa'." pe data de "."". echo "acesta este un sir". Orice valoare diferita de zero sau sir care nu este gol (contine cel putin un caracter) sunt considerate ca TRUE.$vant.59. Matricei (array) i se pot atribui mai multe valori comparativ cu numerele sau sirurile care pot contine doar o singura valoare. echo "La Sinaia sunt ". //rand1 \n rand2 Daca sirul este definit prin ghilimele duble (") PHP-ul interpreteaza mai multe secvente pentru caracterele speciale: Secventa \n \r \t \\ \$ \" Semnificatie rand nou sfarsit de linie tab orizontal backslash simbol dolar ghilimele duble Variabila boleana exprima valoarea de adevar: TRUE sau FALSE. ?> Cea mai simpla cale pentru a specifica un sir este sa il incadram intre ghilimele simple (') dar eventualele ghilimele simple continute vor fi precedate de caracterul \. echo "Solicitarea a fost facuta de domnul ". Sirurile pot contine si nume de variabile.$a=0135. Matricele folosesc chei sau indexi pentru a identifica valorile stocate.

Aceasta afecteaza setul de variabile predefinite disponibile in scop global. ?> Primul index al unei matrici are valoarea 0. De exemplu pentru a obtine DOCUMENT_ROOT vom folosi $_SERVER['DOCUMENT_ROOT'] in loc de $DOCUMENT_ROOT cum era in cazul in care register_globals erau on. ?> Pentru a sterge o pereche cheie/valoare se foloseste unset() unset($matrice[3]).'lac'). //sterge cheia 3 din matrice unset($matrice).2=>'Fizica'.Exemplu: utilizam aceeasi matrice dar folosim functia var_dump() care ne arata cate elemente sunt in matrice si lungimea fiecarei valori a sa <?php $matrice = array('ocean'. Incepand cu PHP 4.5=>'imprimanta'). Exemplu: cream o matrice cu indexii 1. Acesta se aplica si pentru fisierele adaugate prin functiile include() si require(). var_dump ($matrice). var_dump ($matrice). unset($matrice[3]). PHP Superglobals sunt variabile disponibile oriunde in script $GLOBALS $_SERVER $_GET $_POST $_COOKIE $_ENV contine referinte catre toate variabilele care sunt disponibile in scop global scriptului variabile furnizate scriptului de catre serverul web variabile furnizate scriptului via HTTP GET (provin dintr -un formular in care method="GET") variabile furnizate scriptului via HTTP POST (provin dintr-un formular in care method="POST") variabile furnizate scriptului via HTTP cookies variabile furnizate scriptului de catre mediu In continuare voi prezenta cateva din cele mai des folosite variabile globale.0 valoarea default pentru directiva register_globals este off. //sterge intreaga matrice Exemplu: stergem elementul 3 din matricea $matrice <?php $matrice = array(1=>'Matematica'. ?> Variabile predefinite PHP ofera un mare numar de variabile predefinite oricarui script care ruleaza si sunt functie de serverul pe care functioneaza.'mare'. $_SERVER['REMOTE_ADDR'] $_SERVER['HTTP_USER_AGENT'] $_SERVER['HTTP_REFERER'] $_SERVER['SERVER_NAME'] $_SERVER['SCRIPT_NAME'] Exemplu: adresa IP a vizitatorului Exemplu: informatii despre browserul folosit Exemplu: pagina vizitata anterior Exemplu: numele serverului Exemplu: numele scriptului Scopul variabilelor depinde de contextul in care sunt definite. Exemplu: 4 . Valorile indexilor pot fi si declarate manual.3=>'Biologie'. Majoritatea variabilelor din PHP au un singur scop. //sterge cheia 3 Biologie print_r ($matrice).4=>'Istorie'). 3 si 5 <?php $matrice = array(1=>'calculator'.2.3=>'monitor'.

static1(). } static1(). Exemplu: executarea succesiva a functiei va afisa tot timpul 0 <?php function static1() { $a=0. echo "<br>".$a.$a.$a. static1(). //declaram variabila $a de tip global echo "Mihai are ". echo $a. echo $a.php". } mihai(). ?> /* urmeaza fisierul exemplu1_9b. ?> Exemplu: aceeasi functie dar declaram variabila ca fiind statica." ani". echo "<br>". } mihai(). ?> Exemplu: aceeasi functie dar acum declaram variabila de tip global motiv pentru care echo va afisa corect <?php $a=10. $a++.<?php $a=10. function mihai() { echo "Mihai are ". echo "<br>". static1(). 5 . ?> Variabile statice O alta caracteristica importanta a scopului variabilei este variabila statica care exista doar in scopul functiei locale dar isi pierde valoarea cand executia scriptului inceteaza. $a++. ?> Orice variabila folosita in interiorul unei functii este limitata doar scopului functiei. function mihai() { global $a. De cate ori functia va fi executat a ea va incrementa valoarea anterioara a variabilei $a <?php function static1() { static $a=0. Exemplu: deoarece functia foloseste o variabila declarata in afara ei echo nu va afisa nimic <?php $a=10." ani"." ani". include "exemplu1_9b. } static1(). echo "<br>".php */ <?php echo "Mihai are ".

$$a="Ionescu". Exemplu: verificam daca variabila $a este de tip intreg <?php $a=19. ?> Variabile variabile Cateodata este util sa avem nume variabil pentru variabila Exemplu: <?php $a="Mihai". } ?> Exemplu: verificam daca variabila $a este de tip sir <?php $a="sir". } ?> Exemplu: verificam daca variabila $a este o matrice <?php $a = array('fructe'. } else { echo '$a nu este un sir'.static1(). if (is_integer($a)) { echo '$a este intreg'. } else { echo '$a nu este o matrice'. if (is_string($a)) { echo '$a este un sir'. echo "$a $Mihai". } else { echo '$a nu este numar cu virgula flotanta'.14. } ?> Exemplu: verificam daca variabila $a este de tip numar cu virgula flotanta <?php $a=3.'legume'. ?> Exista functii care determina tipul variabilei.'carne'). if (is_array($a)) { echo '$a este o matrice'. } ?> 6 . if (is_float($a)) { echo '$a este numar cu virgula flotanta'. } else { echo '$a nu este intreg'.

"=".Constante Caracteristici: y y y y y au o valore.$adunare.'Popescu')."=". de atribuire."=". cifre si caracterul _ dar fara spatii este recomandat."=".$inmultire. echo $a. $adunare=$a+$b. $impartire=$a/$b. Exemplu: <?php define('NUME'.$scadere. scadere inmultire si impartire.$b. dar spre deosebire de variabile nu poate fi schimbata sau stearsa si nu sunt precedate de simbolul $ numele este case sensitiv si va incepe obligatoriu cu o litera.NUME. $c=7."<br>". echo $a.$b. $modulo=$a%$c. ca denumirea constantei sa fie scrisa cu majuscule pentru a fi mai usor identificata de programator ca si in cazul variabilelor superglobale constantele au un caracter global.$impartire. de comparatie."<br>". ?> $a+$b $a-$b $a*$b $a/$b $a%$b 7 ."".PRENUME."-". define('PRENUME'.$b. Poate contine litere mari sau mici.$modulo.'Mihai'). logici si multipli Operatorii aritmetici sunt de adunare. $b=3. echo $a. echo $a."<br>"."="."". Exemplu: constanta NUME are valoarea Popescu <?php define('NUME'."x". pot lua doar valori scalare Pentru definirea constantei se foloseste functia define(). echo NUME.'Popescu'). ?> Operatori Vom discuta despre operatori aritmetici."%". $scadere=$a-$b."+". dar nu obligatoriu.":"."<br>".$b. $inmultire=$a*$b. adunare scadere inmultire impartire modulo (restul impartirii celor 2 valori) Exemplu: <?php $a=12. echo $a.$c. ?> Ca si in cazul variabilelor constructia echo poate gazdui mai multe constante si text impreuna. echo "Unchiul meu este ". " ".

$b."+". //atribuie lui $a valoarea 13. ?> Incrementarea si decrementarea unui numar Marirea unui numar cu o unitate se numeste incrementare.="ziua".$c.$b. Operatorii de comparatie sunt: egalitate identic inegalitate (diferit) inegalitate (diferit) neidentic mai mic mai mare mai mic sau egal mai mare sau egal $a==$b TRUE daca $a este egal cu $b $a===$b TRUE daca $a este egal cu $b si sunt de acelasi tip $a!=$b TRUE daca $a este diferit de $b $a<>$b TRUE daca $a este diferit de $b $a!==$b TRUE daca $a este diferit de $b si nu sunt de acelasi tip $a<$b TRUE daca $a este mai mic decat $b $a>$b TRUE daca $a este mai mare decat $b $a<=$b TRUE daca $a este mai mic sau egal cu $b $a>=$b TRUE daca $a este mai mare sau egal cu $b Operatorii logici sunt: NOT AND AND OR OR OR !$a TRUE daca $a nu este TRUE $a && $b TRUE daca si $a si $b sunt TRUE $a and $b TRUE daca si $a si $b sunt TRUE $a || $b TRUE daca ori $a ori $b sunt TRUE $a or $b TRUE daca ori $a ori $b sunt TRUE $a xor $b TRUE daca ori $a ori $b sunt TRUE dar nu amandoua Verificarea functionarii operatorilor de comparatie si logici se poate face folosind structurile de control care vor fi prezentate in Capitolul 4. $c=3."ziua"."=". echo $a. // atribuie lui $b valoarea "Buna ziua".($a*$b-$c). post incrementare pre incrementare post decrementare pre decrementare $a++ incrementeaza $a cu 1 si returneaza $a ++$a returneaza $a si incrementeaza $a cu 1 $a-. $c=7. adica valoarea lui $a=5 este 5. echo $a."x". Incrementarea se poate realiza adunand o unitate la acel numar (sau variabila) sau putem folosi varianta prescurtata."<br>".decrementeaza $a cu 1 si returneaza $a --$a returneaza $a si decrementeaza $a cu 1 Exemplu: incrementarea si decrementarea unui numar <?php $a=7."-". $b=3."+". iar scaderea cu o unitate se numeste decrementare.Operatorii de atribuire sunt: Principalul operator de atribuire este = si inseamna asocierea operatorului din stanga cu valoarea expresiei din dreapta (a nu se confunde cu egalitatea)."=". Exemplu: <?php $a=12. $d=7. acelasi lucru cu $a=$a+6 $b="Buna ". $a+=6. Valoarea unei expresii de atribuire este valoarea atribuita. si similar pentru decrementare.$b. $b=7."<br>".$c.($a+$b+$c). Operatori multipli Intr-o constructie PHP pot fi pot fi folositi impreuna mai multi operatori. 8 . acelasi lucru cu $b=$b. $a=7.

$b=3."". ?> Structuri de control Aceste structuri permit definirea unei conditii si apoi executarea unor operatii functie de raspuns.rand(1. Vom discuta despre: if else elseif switch while for foreach include require break continue return if este instructiunea conditionala cea mai folosita avand urmatoarea sintaxa: if (conditie) { instructiuni executate daca este indeplinita conditia .49). } Conditia este incadrata de paranteze rotunde iar instructiunea care se executa in cazul in care conditia este indeplinita intre acolade. echo "$a=4<br>".$a++. if ($a>$b) { echo "$a>$b". echo "post decrementarea lui 7 este: ".2).54621.$b--. } else { instructiuni executate daca nu este indeplinita conditia."<br>"."<br>". Neindeplinirea conditiei face sa se execute ce urmeaza dupa inchiderea acoladei.54621 rotunjit cu 2 zecimale este: ".echo "post incrementarea lui 7 este: ".rand(). echo "pre decrementarea lui 7 este: ". echo "pre incrementarea lui 7 este: ". Poate primi parametri limita minima si maxima a numerelor generate. echo "27. ?> Numere aleatoare rand() este functia din PHP care genereaza automat numere aleatoare.54621)."". echo "$b=3<br>". } ?> else este alta instructiunea conditionala care indica ce se executa in cazul in care conditia mentionata in instructiunea if nu este indeplinita si are sintaxa: if (conditie) { instructiuni executate daca este indeplinita conditia.--$d."<br>". Exemplu: se compara doua variabile si se afiseaza un mesaj <?php $a=4.round(27. Exemplu: <?php echo "numar generat aleator: "."". } Exemplu: se compara doua variabile si se afiseaza un mesaj 9 . ?> Functia de rotunjire round() este functia de rotunjire si poate primi ca parametru numarul de cifre zecimale dupa rotunjire Exemplu: <?php echo "27.54621 rotunjit este: "."<br>". echo "numar generat aleator din intervalul 1-49: "."<br>".++$c.round(27.

case 3: echo "Miercuri". echo "$b=9<br>". 10 . break. if ($a<$b) { echo "$a<$b". $b=23. } Exemplu: <?php $a=19. break. switch ($ziua) { case 1: echo "Luni". break. Daca nu este indeplinita a doua conditie se executa declaratia introdusa prin else. if (conditia1) { instructiuni executate daca este indeplinita conditia 1. case 4: echo "Joi". case 5: echo "Vineri". } ?> elseif este o combinatie intre if si else. In cazul in care conditia if nu este indeplinita se introduce elseif care testeaza inca o conditie. } ?> switch este asemanatoare functiei if dar conditia are mai mult de doua valori. case 6: echo "Sambata". echo "$a=2<br>". break. if ($a>$b) { echo "$a>$b". } else { instructiuni executate daca nu este indeplinita conditia 2. Exemplu: transforma numarul zilei in numele ei <?php $ziua=2. } else { echo "$a>$b". break. echo "<br>". } elseif (conditia2) { instructiuni executate daca este indeplinita conditia 2. case 2: echo "Marti".<?php $a=2. break. break. } else { echo "$a<$b". case 7: echo "Duminica". echo $ziua. } elseif ($a==$b) { echo "$a==$b". $b=9.

require "fisier2. } Exemplu: <?php $personal = array( "Florin" => director.while sau switch. Exemplu: la i=6 se opreste executia buclei 11 . break opreste fortat executia structurilor for. while ($numar<=7) { echo $numar. break accepta optional un argument numeric care indica numarul de structuri imbricate a caror functionare este oprita. expresia2. } ?> foreach este o constructie care functioneaza doar cu matrice generand erori cand sunt folosite variabile cu tipuri de date diferite sau variabile neinitializate."<br>"."<br>". La fiecare iteratie se tipareste variabila i. expresia3) { instructiuni de executat. "Mihai" => economist. do. } ?> include si require sunt doua functii asemanatoare folosite pentru includerea in paginile php a unor fisiere externe. $i<=10. $i++) { echo $i. for (expresia1. } ?> expresia1 este evaluata la inceputul buclei expresia2 se verifica la inceputul fiecarei iteratii expresia3 se executa la sfarsitul fiecarei iterati i constructia for poate functiona si fara una sau toate aceste expresii Exemplu: se initializeaza variabila i cu valoarea 1. se verifica daca este mai mica sau egala cu 10 iar apoi se incrementeaza.} ?> while este o instructiune de tip bucla. "Diana" => secretara ). $numar++. "Catalin" => inginer.html". } ?> for este o instructiune de tip bucla. Sintaxa folosita este: foreach ($matrice as $cheie=>$valoare) { instructiuni de executat. <?php for ($i=1. Atat timp cat conditia este adevarata se repeta bucla.php". while. Diferenta intre cele doua functii consta in faptul ca daca include da gres scriptul genereaza o avertizare dar functioneaza in continuare in timp ce la require se termina executarea scriptului. foreach ($personal as $nume => $meserie) { echo "$nume => $meserie<br>".. "Sorin" => sofer. include "fisier1. foreach. Exemplu: <?php $numar=1.

<?php for ($i=0. Daca este chemata in scop global executia scriptului curent se opreste. Metoda POST permite trimiterea unei cantitati mai mari de date decat metoda GET. name este un atribut care identifica datele introduse in fiecare camp al formularului Sa presupunem ca intr-un formular avem un camp cu name="nume" si method="POST". } else { echo $nume. . ?> Verificarea datelor introduse in formular Pentru a fi siguri ca utilizatorul a completat campurile trebuie sa adaugam s criptului partea de verificare. Exemplu: folosim acelasi formular dar adaugam partea de verificare <?php $nume=$_POST["nume"].php" method="POST"> Nume: <input type="text" name="nume"><br> <input type="submit" value="Trimite"> </form> /* urmeaza fisierul exemplu5_1. if ($nume=="") { echo "Campul nume nu este completat". action indica fisierul care prelucreaza datele introduse in formular cand este apasat butonul Trimite method indica modul in care datele sunt trimise spre prelucrare pe server si poate avea valorile: POST cand datele trimise nu sunt vizibile utilizatorului si GET cand datele sunt adaugate la adresa URL.$i<8."<br>". } ?> continue sare peste restul din iteratia buclei curente si continua executia la inceputul iteratiei urmatoare continue accepta optional un argument numeric care indica numarul de bucle care vor fi sarite pana la sfarsit. Preluarea datelor din formularele HTML Recapitulare: in tutorialul de HTML la capitolul Formulare am mentionat ca eticheta form are at ributele action si method iar fiecare camp din formular avea un name. Exemplu: sare executia peste i==5 <?php for ($i=0. echo $i. Exemplu: formular cu un camp si scriptul php de preluare a datelor <form action="exemplu5_1. } echo $i. } ?> 12 .php */ <?php $nume=$_POST["nume"]."<br>".$i++) { if ($i==5) continue. echo $nume. } ?> return Daca este chemata din interiorul unei functii declaratia return() opreste imediat executia functiei curente si furnizeaza argumentul ca valoare a functiei. Fisierul indicat de action va prelua datele introduse in campul "nume" astfel: $_POST["nume"].$i++) { if ($i>6) { break.

echo "File type: ". $c=$_FILES["file"]["tmp_name"]. } ?> Functii Functia este o secventa de cod ce poate fi utilizata de mai multe ori in interiorul marilor scripturi si este prezentata in script prin declaratia ei.Partea de verificare poate avea mai multe conditii simultane.$b)..\n". In afara preluarii datelor putem folosi formularul si pentru upload-ul fisierelor pe server dar cu masurile de precautie necesare pentru a evita eventualele upload-uri de fisiere nedorite pe server.php */ <?php $a=$_FILES["file"]["size"].$b. $arg_2. Datele preluate pot fi eventual introduse intr-o baza de date sau prelucrate in vederea trimiterii prin email functie de cerintele aplicatiei. } else { echo $nume.$b) { $suma=$a+$b. echo "File name after upload: ". Exemplu: formular pentru upload fisiere.$b. Pentru upload formularul va contine un camp de tip input cu type="file" iar eticheta form va contine in plus un argument enctype="multipart/form-data". echo "File size: ". return $val } unde: foo este numele functiei $arg_1. if(($a<10000) && ($a>0)) { move_uploaded_file($c."". . $d=$_FILES["file"]["type"].$d."<br>". Folderul in care se face upload trebuie sa permita operatia de scriere. echo "Original file name: "."<br>"."<br>".. $arg_n) { echo "Exemplu. Din motive de securitate acest exemplu nu este activ. if (($nume=="") || (strlen($nume)<5)) { echo "Campul nume nu este completat corect".$arg_2. Functia chemata (invocata) va contine acelasi numar de argumente ca in declaratie. function foo($arg_1. Exemplu: acelasi formular dar partea de verificare are doua conditii legate pri n operatorul OR sau || <?php $nume=$_POST["nume"]. 13 . } ?> Folosind modelele anterioare puteti prelua date si face verificarea pentru toate campurile formularului. <form method="post" action="exemplu5_4. $arg_n sunt argumentele functiei $val este valoarea returnata de functie Exemplu: construim o functie care aduna 2 variabile <?php function adunare($a.$a. . $b=$_FILES["file"]["name"].php" enctype="multipart/form-data"> Fisier pentru upload: <input type="file" name="file"><br> <input type="submit" value="Trimite"> </form> /* urmeaza fisierul exemplu5_4.

txt". ?> Exemplu: o functie care genereaza un tabel <?php function tabel($lim) { echo "<table border=\"1\">\n".$i. Verificarea drepturilor de acces asupra fisierului Sintaxa functiei is_writable este: is_writable($filename). } $rezultat=adunare(5. $handle=fopen($filename. echo $rezultat. si poate avea valorile: r = fisier deschis doar pentru citire r+ = fisier deschis doar pentru citire si scriere w = fisier deschis doar pentru scriere w+ = fisier deschis pentru citire si scriere iar daca nu exista fisierul il creza a = fisier deschis pentru adaugare la sfarsit a+ = fisier deschis adaugare la sfarsit iar daca nu exista fisierul il creza t = fisier deschis in mod text b = fisier deschis in mod binar sau combinatii ale acestora. $contents=fread($handle. Citirea fisierelor Sintaxa functiei fread() este: $filename="proba. for ($i=0. variabila $handle va fi folosita ulterior si in alte functii Scrierea in fisiere Sintaxa functiei fwrite() este: fwrite($handle. } echo "</table>". returneaza TRUE daca se poate si FALSE daca nu se poate scrie in fisier Inchiderea fisierului Sintaxa functiei fclose() este: 14 . $i++) { echo "<tr><td>randul ". filesize($filename))."</td></tr>\n". param2). //tabel cu 10 randuri ?> Lucrul cu fisiere Folosind PHP-ul se pot executa anumite operatii asupra fisierelor aflate pe s erver cum ar fi: fopen() = deschide fisierul indicat fclose() = inchide fisierul fread() = citeste continutul fisierului fwrite() = scrie in fisier filesize() = indica dimensiunea fisierului Deschiderea fisierelor Sintaxa functiei fopen() este: fopen(param1.return $suma. "r"). calea catre fisier sau adresa fisierului care va fi deschis param2 = modul in care va fi deschis fisierul. param1 = fisierul. } tabel(9).16). $i<=$lim. "continut ce va fi scris in fisier").

Primul pas este crearea fisierului proba.txt". situatie in care adresele vor fi separate prin virgula subiect este informatia care va fi afisata in campul subiect mesaj este corpul mailului.$filename.$filename. subiect. mesaj. 'a')) { //se verifica deschiderea fisierului echo "Fisierul <b>". 'a')) { //se verifica deschiderea fisierului echo "Fisierul <b>". if(is_writable($filename)) { //se verifica dreptul de scriere in fisier echo "Acces permis scrierii in fisier". Folosind aceste functii de baza putem incerca cateva exemple simple. } else { echo "Acces interzis pentru scriere in fisier". header aditional). <?php $filename="proba. } ?> Exemplu: adaugam exemplului anterior scrierea in fisier si tiparirea continutului sau <?php $filename="proba."<br>".fclose($handle). Se verifica iar exemplul care va returna mesajul Acces permis scrierii in fisier. Fiecare linie va fi separata prin LF ( \n) si nu va avea mai mult de 70 de caractere header aditional contine informatii optionale.txt". //se incheie executia scriptului } if(fwrite($handle."</b> nu poate fi deschis". //iesire } fclose($handle). } ?> Exemplu: adaugam exemplului anterior verificarea deschiderii fisierului. //printeaza cate o valoare pe un rand } } else { echo "Acces interzis pentru scriere in fisier". } else { echo "Acces interzis scrierii in fisier". //se citeste continutul fisierului si se stocheaza intr -o matrice foreach ($matrice as $cheie =>$valoare) { echo $valoare. Se modifica drepturile asupra fisierului conform Q5 din FAQ adaugand scrierea. date("j-n-Y g:ia"). } ?> Functia mail Folosind functia mail() din PHP pot fi trimise mailuri utilizand urmatoarea sintaxa: mail(destinatar. if(is_writable($filename)) { //se verifica dreptul de scriere in fisier if(!$handle=fopen($filename. <?php $filename="proba.$filename. de exemplu: From. destinatar este adresa unde va fi trimis mailul iar daca este necesar mailul poate fi trimis mai multor destinatari.$filename. exit."")."\r\n")===FALSE) { //testeaza daca se poate scrie in fisier die ("Nu se poate scrie in "."</b> poate fi deschis". Cc. if(is_writable($filename)) { //se verifica dreptul de scriere in fisier if(!$handle=fopen($filename.txt apoi se verifica exemplul care va returna mesajul Acces interzis scrierii in fisier.txt"."</b> nu poate fi deschis". Bcc fiind separate de caracterele CRLF ( \r\n) 15 . $matrice=file($filename). //se incheie executia scriptului } echo "Fisierul <b>". exit. Exemplu: se verifica dreptul de scriere in fisier.

$headers . Cc. $headers .ro'.= 'Cc: cc@test.php" method="POST"> Introduceti date spre criptare: <input type="text" name="date"><br> <input type="submit" value="Trimite"> </form> /* urmeaza fisierul test1. $subject="functia mail".ro". Exemplu: trimiterea unui mail la care adaugam header aditional cu campurile From.ini din PHP. $subiect. $subject="functia mail". //preluare date din formular echo md5($a).= 'Content-type: text/html. $headers = 'MIME-Version: 1."\r\n". Executia functiei mail returneaza TRUE daca mailul a fost acceptat pentru trimitere.ro'.html */ <form action="test1. $headers . $subiect. charset=iso-8859-1'. $mesaj.= 'From: sender@test. Pentru ca mailul sa poata contine etichete HTML trebuie adaugat Content-type.ro'."\r\n". $headers . altfel FALSE.= 'Bcc: bcc@test."\r\n"."\r\n". Acceptarea mailului pentru trimitere nu inseamna obligatoriu si ca a fost trimis. //tiparire codare md5 ?> date returneaza un sir functie de parametri ceruti conform tabelului de mai jos Parametru Y y n m F M j d l (L mic) D w z t g G h Semnificatie An format 4 cifre An format 2 cifre Luna format 1 sau 2 cifre Luna format 2 cifre Luna Luna format 3 litere Zi din luna format 1 sau 2 cifre Zi din luna format 2 cifre Zi din saptamana Zi din saptamana format 3 litere Zi din saptamana format 1 cifra Zi din an (0-365) Numarul zilelor dintr-o anumita luna Ora 12h format 1 sau 2 cifre Ora 24h format 1 sau 2 cifre Ora 12h format 2 cifre Exemplu 2006 06 7 07 June Jun 9 09 Friday Wed 0=duminica 6=sambata 123 30 3 21 03 16 . $mesaj="Mail trimis cu functia mail din PHP". Acest lucru poate fi facut prin adaugarea acestuia in header aditional sau prin setarea corespunzatoare a adresei in fisierul php. $mesaj="Mail trimis cu functia mail din PHP". Exemplu: trimiterea unui simplu mail $to="proba@test. $mesaj).ro". S-au folosit caracterele speciale \r\n pentru afisarea fiecarei informatii pe un nou rand $to="proba@test.php */ <?php $a=$_POST['date']."\r\n".Toate mailurile trimise trebuie sa aibe campul From completat. mail($to. $headers). Bcc. mail($to.0'. Exemple md5 este o metoda de criptare folosind un algoritm special care furnizeaza ca rezultat un numar hexazecimal de 32 caractere Exemplu: introduceti in formular datele care ulterior vor fi criptate md5 /* urmeaza fisierul test1.

"<br>". echo strlen($c). $b="atentie inalta tensiune".$c. $b=ltrim($a).H i s a A Ora 24h format 2 cifre Minute Secunde am sau pm AM sau PM Exemplu: data si ora afisate in mai multe moduri 21 32 17 pm PM <?php echo date("d-m-Y g:i A"). echo"<br>"."<br>". echo strlen($a). echo"<br>". $c=rtrim($b). echo $a."<br>".$b. echo date("l-M-Y"). echo strlen($b).$b)). echo strtoupper($b). ?> strlen returneaza lungimea unui string Exemplu: returneaza lungimea sirului Another brick in the wall <?php $sir="Another brick in the wall". ?> count() numara elemetele unei matrici Exemplu: 17 . ?> strtolower() converteste un sir la litere mici strtoupper() converteste un sir la litere mari Exemplu: se converteste primul sir la litere mici si al doilea la litere mari <?php $a="Star Wars Episode III". foc). print_r(array_merge($a. echo "<br>". legume. echo date("j-F-Y H:i" ). aer. echo strlen($sir). echo "<br>". echo strtolower($a). echo "<br>". $b=array(fructe. carne). ?> trim() elimina spatiile albe din sir ltrim() elimina spatiile albe din stanga sir rtrim() elimina spatiile albe din dreapta sir Exemplu: se elimina succesiv spatiile libere din sir " 234 " folosind ltrim() si apoi rtrim() <?php $a=" 234 ". ?> array_merge() uneste mai multe matrici Exemplu: uneste doua matrici si tipareste matricea rezultata <?php $a=array(apa.

ca serverul de gazduire suporta aceste functii. $img = ImageCreate (200. ''. Cream o linie din punctul (10. urmatoarele 2 sunt distantele in pixeli (coordonatele pe X si pe Y) fata de coltul stanga sus. ''. prin cele 3 culori de baza R-G-B. $text = ImageColorAllocate ($img. <?php header ("Content-type: image/jpeg"). ?> PHP .0.0. ?> header .pentru PNG Cu ImageCreate sunt declarate dimensiunile imaginii Culoarea fondului imaginii este declarata in ImageColorAllocate.10. Adaugam exemplului anterior textul "Proba text".200. 100).255.$text).0). $fond = ImageColorAllocate ($img. Verificati folosind phpinfo(). ImageLine ($img.90.90) in punctul (190.10. ImageJPEG ($img.200.php" alt="Imagine creata cu GD Library"> In urmatorul exemplu vom genera o imagine in format JPEG. cu caractere albe. ''.255). <?php header ("Content-type: image/jpeg"). in format zecimal (0-255) ImageJPEG . $fond = ImageColorAllocate ($img. cu dimensiunile 200px x 100px. $fond = ImageColorAllocate ($img. iar pentru PNG ImagePNG)."Proba text".100).190. fond verde. ImageJPEG ($img. $img = ImageCreate (200.100). <?php header ("Content-type: image/jpeg"). stabilind pozitia textului in interiorul imaginii . $col = ImageColorAllocate ($img.255.0).90.255.0).pentru JPEG image/gif . 100). ?> 18 . Pentru a insera in paginile web o imagine creata cu functiile din php folositi eticheta img <img src="imagine. ?> Culoarea fontului este declarata tot cu ImageColorAllocate. echo (count($a)). Referinta coordonatelor este coltul stanga sus. Calitatea imaginii generate va fi "best quality" (100). inainte de a le utiliza. legume.declara tipul imaginii Content-type poate avea valorile: image/jpeg .90).5.pentru GIF image/png .255. $img = ImageCreate (200.$col).<?php $a=array(fructe. ImageString ($img.0. ImageJPEG ($img. carne. 100).255).200. Prima este marimea fontului. lactate).100). similar culorii fondului ImageString contine 3 valori numerice si textul continut de imagine.10.GD Library Functiile GD sunt folosite pentru crearea imaginilor.afiseaza imaginea in browser (pentru GIF se foloseste ImageGIF.

0).255). $start_y.100.255. <?php header ("Content-type: image/jpeg"). 100).255.255.50). 18. fata de coltul stanga sus. <?php header("Content-Type: image/jpeg"). $col = ImageColorAllocate ($img. 100). ImageLine ($img.0. 0.ttf".90.90. ImageDestroy($im). $start_x. marime 18.ttf'. <?php header ("Content-type: image/jpeg"). si va avea o inclinare de 10 grade.200. $img = ImageCreate (200.90. $black = ImageColorAllocate($im.0).100).10.$col). 10. Textul va fi amplasat.10. $text). $col = ImageColorAllocate ($img.0. Cele 4 valori numerice continute reprezinta coordonatele x si y pentru punctul de inceput si de sfarsit al liniei.10.50. <?php header ("Content-type: image/jpeg").255. ?> Cream o elipsa in centrul imaginii (100. $im = ImageCreateFromJpeg("fond.190.$col).4.255.$col). la 30px pe orizon tala si 40px pe verticala. ?> 19 . ImageJPEG ($img.jpg"). ?> ImagePolygon contine o matrice (care indica coordonatele pentru fiecare colt in parte) si numarul de colturi Vom genera o imagine care va avea ca fundal un fisier JPG (fond.90. 'verdana. $col = ImageColorAllocate ($img.0). ImageEllipse ($img.0. 100).90).0). ImageJPEG ($img. ?> Cream un trapez. Completam exemplul anterior cu inca 2 linii pentru a desena un triunghi.100.80.100. avand latimea 180 si inaltimea 80.$col). $start_x = 30.jpg). Calitatea imaginii generate va fi "best quality" (100).255). $start_y = 60.255).0. 0. $fond = ImageColorAllocate ($img. iar ultima este declarata culoarea.255.10.10.100). $img = ImageCreate (200.100). 0). ImageLine ($img. ''. $fond = ImageColorAllocate ($img.180. 100). ImagePolygon ($img.190.200.$col). $img = ImageCreate (200. $fond = ImageColorAllocate ($img. peste care aplicam textul "Text proba". ImageLine ($img. folosind fontul "verdana. $black. ImageJPEG ($img. Imagettftext($im.140.90.190.array(60. ''.10. $text="Text proba". Imagejpeg($im.200. de culoarea neagra (0.Cu ImageLine cream linia. ''. ''.10.

Sign up to vote on this title
UsefulNot useful