Universitatea “Constantin Brâncuşi” din Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu

Tehnologii Web

Lector univ. dr. Adrian Runceanu

1

Curs 9

Limbajul PHP (partea IV)

2

•curs 9
1. Utilizarea şirurilor de caractere 1.1. Compararea şirurilor şi subşirurilor de caractere 1.1.2. Compararea subşirurilor de caractere 1.2. Prelucrarea şirurilor de caractere 1.2.1. Eliminarea spaţiilor albe 1.2.2. Transformarea caracterelor în minuscule sau majuscule 1.2.3. Criptarea şirurilor 1.2.4. Extragerea cuvintelor 2. Lucrul cu directoare şi fişiere
3 Tehnologii WEB

2. Date trimise prin metoda GET 3. Generarea dinamica a formatelor grafice 4.2.1. Utilizarea datelor introduse în formularele XHTML 3.1.3. Date trimise prin metoda POST 3.2. Elementul input 3.1.3.1.1.2.2. Elemente XHTML si variabile asociate 3.2.1.1. Generarea dinamică a formatelor textuale 4. Generarea dinamică a conţinutului 4. Alte modalitati de trimitere a datelor 4. Generarea formatului XML 4.2. Generarea formatului XHTML 4.1. Elementul textarea 3. Utilizarea mecanismului output buffering 4 Tehnologii WEB . Preluarea datelor introduse in formulare 3.•curs 9 3.1.2.3. Elementul select 3.

•1. Utilizarea şirurilor de caractere Limbajul PHP include un numar mare de functii predefinite care sunt utilizate pentru a efectua diverse operatii asupra sirurilor de caractere. 5 Tehnologii WEB .

1.daca sir1 este mai mare decat sir2 • 6 Tehnologii WEB .daca sir1 si sir2 sunt egale 1 (un numar pozitiv) . string sir2) • Functia strcmp() compara in maniera case sensitive cele doua siruri transmisc ca argumente. intorcand: -1 . Compararea sirurilor si subsirurilor de caractere Pentru compararea sirurilor de caractere sunt utilizate functiile strcmp() si strcasecmp(): int strcmp(string sir1.daca sir1 este mai mic decat sir2 0 .•1.

$sir2)) echo "Sirurile sunt diferite!". $sir2="Popescu Mihai". else echo "Sirurile sunt egale!". if(strcmp($sir1.•Exemplu: <?php $sir1=”Popescu Mihaela”. ?> 7 Tehnologii WEB .

strcasecmp() compara cele doua siruri transmise ca argument. • Ca si prima functie amintita.• Prototipul functiei strcasecmp() este identic cu cel al functiei strcmp(). se va realiza o comparare case insensitive. • De aceasta data. 8 Tehnologii WEB . • De exemplu sirurile "Web" si "web" vor fi egale.

string sir2. intorcand aceleasi valori ca aceasta.•1. cu diferenta ca se specifica un numar care stabileste cate caractere vor fi comparate din cele doua siruri.2. Compararea subsirurilor de caractere • Pentru 9 compararea subsirurilor de caractere se utilizeaza functiile strncmp() si strncasecmp(): int strncmp(string sir1. Tehnologii WEB . int lungime) • Functia strnncmp() este similara cu strcmp().1.

$sir2="Popescu Mihai". $sir2. if(strncmp($sir1. else echo "Subsirurile sunt egale!". ?> 10 Tehnologii WEB . 12)) echo "Subsirurile sunt diferite!".•Exemplu: <?php $sir1="Popescu Mihaela".

de aceasta data. • Ca si prima functie amintita. se va realiza o comparare case insensitive. • Diferenta este ca. 11 Tehnologii WEB .• Prototipul functiei strncasecmp() este identic cu cel al functiei strncmp(). strcasecmp() compara un numar de caractere (precizat prin lungime) ale celor doua siruri transmise ca argument.

2.2.2.1. Extragerea cuvintelor 2.1.1.4.2. Compararea subşirurilor de caractere 1.•curs 9 1.3. Eliminarea spaţiilor albe 1. Criptarea şirurilor 1.2. Prelucrarea şirurilor de caractere 1. Compararea şirurilor şi subşirurilor de caractere 1. Lucrul cu directoare şi fişiere 12 Tehnologii WEB . Utilizarea şirurilor de caractere 1.2. Transformarea caracterelor în minuscule sau majuscule 1.2.

Prelucrarea şirurilor de caractere Prelucrarea sirurilor de caractere presupune realizarea unor diverse operatii asupra acestora.2. eliminarea spatiilor albe de la inceputul si/sau de la sfarsitul sirurilor 2. extragerea subsirurilor si a cuvintelor 13 Tehnologii WEB . dintre care mentionam: 1.•1. transformarea tuturor caracterelor in majuscule ori minuscule 3. criptarea sirurilor 5. convertirea unor caractere in entitati XHTML 4.

Functia ltrim() elimina spatiile albe (sau alte caractere) de la inceputul sirului sir. 14 Tehnologii WEB .2.•1. trim() string ltrim(string sir [. Eliminarea spatiilor albe Pentru eliminarea spatiilor albe de la inceputul si/sau sfarsitul sirurilor de caractere se utilizeaza functiile: 1. transmis ca argument.1. rtrim() 3. ltrim() 2. string lista]) 1.

• Daca argumentul amintit este prezent.In absenta parametrului optional lista. newline. din sir vor fi eliminate toate caracterele incluse in lista. folosind “. (doua puncte consecutive). NULL-byte si tab vertical). • 15 Tehnologii WEB .” .. precizate unul dupa altul. • Functia intoarce sirul rezultat in urma eliminarii caracterelor specificate. din sir vor fi eliminate spatiile albe (caracterele spatiu. carriage return. • In lista poate fi inclus si un domeniu. tab. • Acest argument trebuie specificat sub forma unei liste de caractere.

•Exemplu: <?php 16 $text="\t\tPHP ." Tehnologii WEB .".limbaj de programare pentru server. $salut="Salut prieteni."." */ $salutltrim=ltrim($salut. var_dump($salutltrim).limbaj de programare pentru server. "Sal") . var_dump($textltrim). /* Se va afisa: string(41) "PHP . /* Se va afisa: String(11) "ut prieteni. $textltrim=ltrim($text).

2. atat de la inceputul. • De asemenea. 17 Tehnologii WEB . Functia rtrim() are o sintaxa similara cu cea a functiei ltrim(). cat si de la sfarsitul sirului transmis ca argument. numai ca in cazul utilizarii sale. functia trim() are o sintaxa similara cu cea a functiilor descrise anterior. vor fi eliminate spatiile albe (sau alte caractere) de la sfarsitul sirului transmis ca argument. deosebindu-se de ele prin faptul ca efectul utilizarii sale consta in eliminarea spatiilor albe (sau a altor caractere).

toate caracterele alfabetice ale acestuia fiind majuscule. toate caracterele alfabetice ale acestuia fiind minuscule.2. 18 Tehnologii WEB .2. Transformarea caracterelor in minuscule sau majuscule string strtolower (string sir) • Functia strtolower() intoarce sirul argument sir transformat.•1. string strtoupper(string $string) • Functia strtoupper() intoarce sirul argument sir transformat.

• Pentru a impiedica obtinerea lor de catre persoane neautorizate. sha1() 19 4. parole. • Limbajul PHP pune la dispozitia utilizatorilor un numar mare de functii predefinite care realizeaza criptarea datelor. crc32() • Tehnologii WEB . cryp() 3.3. Criptarea sirurilor Unele dintre aplicatiile Web utilizeaza date confidentiale (adica. dintre care se pot mentiona: 1. coduri numerice personale). md5() 2. conturi bancare. acestea trebuie criptate inainte de stocarea lor in bazele de date.2.•1.

$parola_extrasa este parola criptata cu md5(). else echo "Parola nu este corecta.". • Se observa ca parola furnizata de utilizator este mai intai criptata cu md5() si apoi comparata cu cea extrasa din baza de date. Tehnologii WEB . obtinuta din baza de date in care a fost stocata anterior (secventa de extragere nu este prezentata). Functia md5() cripteaza sirul sir. • In exemplul anterior.20 string md5 (string sir) 1. intorcand un sir de 32 de caractere hexazecimale. • Acesta este asociat in mod unic sirului sir. Exemplu: if(md5($_POST['parola'])==$parola_extrasa) echo "Autentificare realizata".

Pentru extragerea subsirurilor dintr-un sir se utilizeaza functia explode(). al carei prototip este urmatorul: array explode(string delimitator.2.•1. ultimul element continand restul sirului. Extragerea cuvintelor 21 1. Tehnologii WEB .4. fiecare dintre acestea fiind un subsir obtinut prin ruperea sirului sir folosind delimitates. • Daca argumentul optional este precizat. numarul de elemente al tabloul intors nu va depasi valoarea acestuia (limita). int limita]) • Functia intoarce un tablou de siruri. string sir[.

• Functia explode() este des utilizata pentru a obtine cuvintele existente intr-un sir. functia explode() va intoarce valoarea false. caracterul spatiu). delimitatorul limita va avea valoarea " " (adica. • In schimb. va intoarce intregul sir. 22 Tehnologii WEB . daca valoarea acestui argument nu este continuta in sir.• Daca delimitatorul este sirul vid (" "). • In acest caz.

"<br />". foreach($tablou as $cuvant) echo $cuvant .".•Exemplu: <?php $sir="Programare pentru server. */ ?> 23 Tehnologii WEB . /* Se va afisa: Programare pentru server. $tablou=explode(" ". $sir).

• Aceasta aduna sir elementele unui tablou. sirul legatura fiind prezent intre oricare doua elemente consecutive. Functia care realizeaza operatia inversa este implode().2. Tehnologii WEB 24 . array tablou) • Functia intoarce un sir de caractere continand elementele tabloului tab in aceeasi ordine. folosind un element de legatura: string implode(string legatura.

?> 25 Tehnologii WEB . // Se va afisa Programare pentru server."). $tablou). $sir=implode(" ". echo $sir. "server. "pentru".<?php $tablou=array("Programare".

•curs 9
1. Utilizarea şirurilor de caractere 1.1. Compararea şirurilor şi subşirurilor de caractere 1.1.2. Compararea subşirurilor de caractere 1.2. Prelucrarea şirurilor de caractere 1.2.1. Eliminarea spaţiilor albe 1.2.2. Transformarea caracterelor în minuscule sau majuscule 1.2.3. Criptarea şirurilor 1.2.4. Extragerea cuvintelor 2. Lucrul cu directoare şi fişiere

26 Tehnologii WEB

•2. Lucrul cu directoare şi fisiere

Dupa cum se stie, prin intermediul unui limbaj de programare sunt posibile crearea si manipularea structurile de date. • Aceste structuri de date pot fi: 1. tranzitorii (stocate in memorie, tablouri, obiecte) sau 2. permanente (stocate in fisiere sau in baze de date) • Prin intermediul unor functii specifice, este posibil ca in PHP (ca si in alte limbaje) sa se citeasca si sa se scrie date din/in fisiere.

27 Tehnologii WEB

De asemenea, pot fi efectuate si alte operatiuni cu directoare si fisiere, dintre care amintim: 1. crearea, redenumirea si stergerea directoarelor 2. crearea, copierea, redenumirea si stergerea fisierelor 3. obtinerea si modificarea atributelor fisierelor 4. citirea si afisarea continutului directoarelor 5. modificarea permisiunilor fisierelor 6. includerea continutului fisierelor in structuri de date native 7. cautarea in fisiere pe baza unui sablon specificat

28 Tehnologii WEB

nefiind necesara instalarea unor extensii specifice. • Indiferent 29 Tehnologii WEB . de platforma pe care este folosit PHP .• Functiile utilizate pentru lucrul cu directoare si fisiere sunt incluse in nucleul PHP. pentru lucrul cu fisiere si cataloage este utilizat modelul preluat din prima platforma amintita.UNIX/Linux sau Windows -.

poate avea rezultatele asteptate numai daca exista permisiuni de acces corespunzatoare. care nu trebuie confundat cu contul sub care utilizatorul are acces FTP sau direct (prin intermediul shell-ului) la directoarele si fisierele al caror proprietar este. • In acest sens.Trebuie sa se tina seama ca utilizarea functiilor destinate lucrului cu directoare si fisiere. trebuie avut in vedere ca procesorul PHP (care interpreteaza si executa scripturile) ruleaza (ca si serverul Web) intr-un cont de utilizator cu permisiuni de acces restranse (numit .de cele mai multe ori nobody). • 30 Tehnologii WEB .

dimpotriva.• De asemenea. aceasta este specificata in httpd.conf ca valoare a directivei DocumentRoot). 31 Tehnologii WEB . • Serverul Web (Apache) poate livra utilizatorilor fisiere situate numai sub radacina documentelor (in Apache. trebuie sa se tina seama ca unele dintre aceste functii pot fi utilizate numai pe platforma Windows sau. numai pe platforma UNIX/Linux.

• In schimb.ini) sa fie setate corect. Apache va putea servi documente aflate numai in acest director. PHP poate deschide. citi si scrie in fisiere situate in oricare director. cu conditia ca permisiunile de acces si directiva include_path (in php. precum si in subdirectoarele sale. • De exemplu. daca radacina documentelor este /usr/local/apache2/htdocs. PHP poate accesa fisiere aflate in orice locatie. in conditiile mentionate. • In schimb. 32 Tehnologii WEB .

1.1.3. Elementul textarea 3.1. Elementul select 3.1. Elemente XHTML si variabile asociate 3.1.•curs 9 3.2.2.1.2. Generarea dinamică a conţinutului 4. Generarea formatului XHTML 4. Date trimise prin metoda GET 3.2. Generarea dinamica a formatelor grafice Tehnologii WEB . Elementul input 3.2.3. Generarea dinamică a formatelor textuale 4. Alte modalitati de trimitere a datelor 4.1.1.2. Utilizarea datelor introduse în formularele XHTML 3. Date trimise prin metoda POST 3.2.2.1. Preluarea datelor introduse in formulare 3. Generarea formatului XML 33 4.

dintre care mentionam: 1. Datele trimise pot fi utilizate in diverse scopuri.•3. furnizarea unor informatii confidentiale (numere Tehnologii WEB . Utilizarea datelor introduse în formularele XHTML O modalitate importanta de interactiune intre utilizatori si aplicatiile Web consta in introducerea/selectarea unor date in/din formularele XHTML si trimiterea acestora unui script de prelucrare care ruleaza pe server. precizarea unor criterii pentru selectarea informatiilor stocate pe server si care vor fi livrate ulterior utilizatorilor 34 3. autentificarea utilizatorilor 2.

1. numele campurilor formularului 2. hidden si 35 select) Tehnologii WEB • . checkbox. iar valorile elementelor sunt reprezentate de: • datele introduse de utilizatori (pentru campurile de tip text.0. datele introduse in formulare si trimise server-ului sunt disponibile in tablourile asociative (variabile superglobale) $_GET. $_POST si $_REQUEST.1. textarea) • sau de optiunile facute de acestia (pentru campurile de tip radio. Preluarea datelor introduse in formulare Incepand cu versiunea PHP 4.•3. password. • Cheile elementelor tablourilor amintite sunt: 1.

html si afisare.php. In continuare este prezentat un exemplu simplu de utilizare a acestei metode.1.1. Date trimise prin metoda GET • Datele trimise scriptului prin metoda GET vor fi disponibile in scriptul de prelucrare a acestora prin intermediul tablourilor superglobale $_GET si $_REQUEST. care include fisierele date.•3. • 36 Tehnologii WEB .

w3.w3.php"> <tr><td>Nume</td> <td><input type="text" name="nume"/></td></tr> <tr><td>Prenume</td> <td><input type="text" name="prenume" /></td></tr> <tr><td><input type="submit" value="Trimite" /></td> <td><input type="reset" /></td></tr> 37 </form> Tehnologii WEB .org/TR/xhtmll/DTD/xhtmlltransitional.dtd"> <html xmlns="http://www.org/1999/xhtml"> <head> <title>Utilizarea metodei GET</title> </head> <body> <table> <form method="get" action="afisare.0 Transitional//EN" "http://www.Fisierul date.html va avea urmatorul continut: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.

dtd": <html xmlns="http://www.org/TR/xhtmll/DTD/xhtmll-transitional.$_GET['nume'].$_GET['prenume']. echo "Prenume: ". } else header("Location: date.0 Transitional//EN' "http://www.html")."<br />".Scriptul de prelucrare afisare. ?> 38 </body> Tehnologii WEB .w3.w3.org/1999/xhtml"> <head> <title>Afisarea datelor trimise folosind metoda GET</title> </head> <body> <?php if(!empty($_GET['nume']) && !empty($_GET['prenume'])) { echo "Nume: ".php va avea urmatorul continut: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.

• Reafisarea formularului se realizeaza dupa ce serverul trimite browser-ului antetul Location avand ca valoare numele fisierului date. scriptul de prelucrare inclus in fisierul afisare va afisa continutul acestora.html.• In cazul in care utilizatorul completeaza ambele campuri ale formularului (se remarca folosirea functiei empty()). browserul va afisa din nou formularul de introducere a datelor. • In caz contrar. 39 Tehnologii WEB .

in scriptul de prelucrare afisare. 40 Tehnologii WEB . numele si prenumele utilizatorului se introduce in campurile input de tip text ale caror atribut name au valorile "nume" si. in mod similar. • Aceste date sunt preluate. respectiv "prenume".php elementele $_GET[‘nume’] si $_GET[‘prenume’] ale tabloului superglobal $_GET. • De asemenea.• Dupa cum se poate constata. datele pot fi preluate si in tabloul superglobal $_REQUEST.

html").2."<br />". iar in scriptul afisare. atributul method al elementului form trebuie sa aiba valoarea "post". 41 • Tehnologii WEB . } else header("Location: date.$_POST['prenume'].php trebuie sa se utilizeze secventa PHP urmatoare: <?php if(!empty($_POST['nume']) && !empty($_POST['prenume'])) { echo "Nume: ".•3.$_POST['nume']. • Astfel.1. echo "Prenume: ". Date trimise prin metoda POST Aplicatia anterioara poate fi modificata pentru a utiliza metoda POST in scopul transmiterii catre server a datelor introduse in formular.

2.2.1. Preluarea datelor introduse in formulare 3.2. Generarea formatului XHTML 4. Alte modalitati de trimitere a datelor 4.2. Date trimise prin metoda POST 3.3. Generarea dinamică a formatelor textuale 4.2. Elementul select 3.1. Utilizarea datelor introduse în formularele XHTML 3. Elementul input 3.2.1.1. Elementul textarea 3.2. Generarea formatului XML Tehnologii WEB .1.1.1.1. Elemente XHTML si variabile asociate 3. Generarea dinamică a conţinutului 4.•curs 9 42 3. Date trimise prin metoda GET 3.3.1.

Elemente XHTML si variabile asociate Elementele continute in formularul XHTML si al variabilelor corespunzatoare de care dispune scriptul de prelucrare a datelor: 3. Tehnologii WEB .2. scriptul de prelucrare dispune in tablourile $_GET si $_REQUEST (daca se utilizeaza metoda GET) si. $_POST si $_REQUEST (daca se utilizeaza metoda POST) de cate un element a carui cheie coincide cu numele elementului (valoarea atributului name al acestuia) si a carui valoare coincide cu continutul introdus de utilizator al acestui element sau cu valoarea atributului value. Elementul input • In cazul unui element input de tip text. daca aceasta 43 este precizata.2.•3.1. respectiv.

dar cu valori (valorile atributului value) diferite.Daca utilizatorul nu introduce nimic in campul text. • In cazul unui element input de tip buton radio. • Scriptul de prelucrare dispune in tablourile amintite de cate un element a carui cheie coincide cu numele butonului radio si a carui valoare este egala cu valoarea butonului selectat de utilizator. trebuie create in formular cel putin doua butoane cu nume (valoarile atributului name) identice. conform modalitatii uzuale de folosire a acestui tip. • Daca utilizatorul nu alege nici o optiune (adica nu este selectat nici un buton). elementul respectiv va avea 44 valoarea null. • Tehnologii WEB . elementul respectiv al tablourilor va avea valoarea NULL sau sirul vid.

scriptul de prelucrare dispune in tablourile amintite de cate un element a carui cheie coincide cu numele casetei checkbox (valoarea atributului name) si a carui valoare este egala cu cea a atributului value al casetei. elementul respectiv va avea valoarea NULL. • Daca utilizatorul nu selecteaza caseta. daca variabila are o valoare diferita de null. si false. pentru a verifica daca o variabila PHP are valoarea NULL. in caz contrar. • Functia va intoarce true.In cazul unui element input de tip checkbox (caseta de validare). • 45 Tehnologii WEB . • Dupa cum se stie. aceasta se transmite ca argument functiei isset().

3.2. scriptul de prelucrare dispune in tablourile amintite anterior de cate un element a carui cheie coincide cu numele elementului select (valoarea atributului name al acestuia) si a carui valoare este egala cu cea a atributului value al elementului option selectat de utilizator. Elementul select In cazul in care formularul include o lista de selectare. 46 Tehnologii WEB .2.

• Daca utilizatorul nu introduce nimic. respectiv. valoarea respectiva va fi null. $_POST si $_REQUEST (daca se utilizeaza metoda POST) de cate un element a carui cheie este egala cu numele elementului textarea (valoarea atributului name al acestuia) si a carui valoare este un sir care coincide cu textul introdus de utilizator in caseta. Elementul textarea In cazul in care formularul include o caseta multiline.3.3. 47 Tehnologii WEB .2. scriptul de prelucrare dispune in tablourile $_GET si $_REQUEST (daca se utilizeaza metoda GET) si.

1. Elementul input 3. Generarea formatului XML Tehnologii WEB . Utilizarea datelor introduse în formularele XHTML 3.2.2. Date trimise prin metoda GET 3. Generarea dinamică a formatelor textuale 4. Elementul select 3. Alte modalitati de trimitere a datelor 4.1.2. Generarea formatului XHTML 4.2.1.3. Date trimise prin metoda POST 3.1.1.2. Preluarea datelor introduse in formulare 3.•curs 9 48 3. Generarea dinamică a conţinutului 4.2.3. Elemente XHTML si variabile asociate 3.1.1.1.1. Elementul textarea 3.2.

3. • Procedeul 49 Tehnologii WEB . Alte modalitati de trimitere a datelor • Datele incluse in campurile unui formular pot fi trimise scriptului de prelucrare si fara apasarea unui buton de tip submit. presupune utilizarea unei modalitati de executie a metodei submit() a obiectului Form (metoda JavaScript).•3.

else $culoare=$ GET['culoare'].Exemplu (scriptul va fi salvat in fisierul culori. ?> 50 Tehnologii WEB .php): <?php if(!isset($_GET['culoare'])) $culoare="white".

?>"> <form action="culori.dtd"> <html xmlns="http://www.php"> <select name="culoare" onChange="submit().0 Transitional//EN" "DTD/xhtmll-transitional.w3.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1."> 51 Tehnologii WEB .org/1999/xhtml"> <head> <title>Schimba culoarea de fundal</title> </head> <body bgcolor="<?php echo $culoare.

echo ">rosu</option>". ?> </form> Tehnologii WEB . echo ">galben</option>". if($culoare=="red") echo " selected=\"selected\"". if ($culoare=="yellow") echo " selected=\"selected\"". echo "<option value=\"green\"".52 <?php echo "<option value=''></option>". if($culoare=="green") echo " selected=\"selected\"". echo ">verde</option>". echo "<option value=\"yellow\"". echo "</select>". echo "<option value=\"red\"".

care determina un apel al metodei submit() a obiectului Form. • Executia acestei metode determina trimiterea catre scriptul de prelucrare (aici tot culori.php) a valorii elementului select (al carui atribut name are valoarea "culoare").Odata cu selectia unei culori din lista oferita. • 53 Tehnologii WEB . • Aceasta este chiar valoarea atributului value al elementului option selectat. se produce evenimentul JavaScript onChange. • Culoarea selectata va fi atribuita ca valoare variabilei $culoare prin intermediul elementului $GET[‘culoare’]. care va fi in continuare pentru stabilirea culorii de fundal a paginii.

54 Tehnologii WEB .Modalitatea prezentata poate fi utilizata si in alte scopuri. optiune care va fi utilizata in scriptul de prelucrare drept cuvant-cheie pentru cautarea intr-o baza de date (intr-o aplicatie de comert electronic). ca. de exemplu. selectia si transmiterea unei optiuni dintr-o lista de selectare.

URL-ului scriptului de prelucrare. • In acest caz.php): • <?php if(!isset($_GET ['culoare'])) $culoare="white". prin intermediul unei legaturi. ele sunt adaugate.Este posibil ca datele alese de client sa fie trimise pe server fara a se utiliza un formular. ?> 55 Tehnologii WEB . else $culoare=$_GET ['culoare']. ca in exemplul urmator (salvat in fisierul culori2.

php?culoare=green"> Verde</a><br /> </body> 56 </html> Tehnologii WEB .dtd"> <html xmlns="http://www. ?>"> <a href="culori2.php?culoare=red"> Rosu</a><br /> <a href="culori2.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.org/1999/xhtml"> <head> <title>Schimba culoarea de fundal</title> </head> <body bgcolor="<?php echo $culoare.php?culoare=yellow"> Galben</a><br /> <a href="culori2.0 Transitional//EN" "DTD/xhtmll-transitional.w3.

1.2.1.3. Generarea formatului XHTML 4.2.2. Preluarea datelor introduse in formulare 3.2.3. Utilizarea datelor introduse în formularele XHTML 3.2.2. Elementul select 3. Elemente XHTML si variabile asociate 3.1.1.1. Generarea dinamică a conţinutului 4.1. Date trimise prin metoda POST 3.1. Generarea formatului XML Tehnologii WEB . Generarea dinamică a formatelor textuale 4. Date trimise prin metoda GET 3.1.•curs 9 57 3.1.2. Alte modalitati de trimitere a datelor 4. Elementul input 3. Elementul textarea 3.

• Alaturi de XHTML. • 58 Tehnologii WEB . este necesar sa se trimita explicit acestuia prin intermediul functiei PHP header(). prin intermediul unor instructiuni si functii.•4. Generarea dinamică a continuţului PHP ofera posibilitatea generarii dinamice a continutului afisat in browserul utilizatorilor. un antet Content-Type cu o valoare corespunzatoare formatului. • In cazul celor mai multe formate. inainte de a se trimite browser-ului continutul general dinamic. dar si formate de alta natura (decat cele grafice). pot fi generate si alte formate textuale (XML).

•4. formatele textuale sunt generate prin intermediul instructiunilor: 1. 59 Tehnologii WEB . Generarea dinamică a formatelor textuale • Dupa cum s-a putut constat deja. echo (numita si instructiune de reflectare) 2. print • Acestea pot fi utilizate si ca functii (echo() si print()).1.

"). ca in urmatoarele exemple echivalente: echo "PHP este cel mai utilizat server de aplicatii. dar numai cand echo se foloseste ca instructiune: echo "PHP este".". echo ("PHP este cel mai utilizat server de aplicatii.". " cel mai utilizat ".Cea mai simpla modalitate de folosire a instructiunii echo consta in afisarea unui sir de caractere. • 60 Tehnologii WEB . separate prin virgula. "server de aplicatii. • Pot fi utilizate argumente multiple.

1.•4. 61 Tehnologii WEB .1. aceasta va fi inclusa intre ghilimele sau apostrofuri. • In scopul mentionat. ca in exemplul urmator: • echo "<center><h2><b>Primul capitol</b></h2></center>". Generarea formatului XHTML Prin intermediul instructiunii echo poate fi generat dinamic orice marcaj/secventa (X)HTML.

• 62 Tehnologii WEB . echo "<b>Temperatura corpului este de ". ca in exemplul urmator: $temp=300. // In browser se va afisa Temperatura corpului este de 300 K." K.$temp.</b>". impreuna cu date de tip sir de caractere sau marcaje (X)HTML. pot fi afisate in browser valorile unor variabile.</b>". // In browser se va afisa Temperatura corpului este de 300 K. echo "<b>Temperatura corpului este de $temp K.Folosind echo sau print.

PHP nu ar fi realizat evaluarea.in acest caz . si . • 63 Tehnologii WEB .PHP evalueaza variabila $temp la valoarea sa (adica 300). deoarece . Daca s-ar fi folosit apostrofuri.in consecinta – browser-ul ar fi afisat sirul $temp.• Argumentul primei instructiuni echo trebuie inclus obligatoriu intre ghilimele.

spre deosebire echo. echo accepta argumente multiple.• Instructiunea print este similara cu echo. si 0. iar print intoarce valoarea 1. ca instructiunea print sa fie utilizata in expresii complexe. 64 Tehnologii WEB . daca afisarea a avut loc. echo nu intoarce nici o valoare. existand totusi cateva diferente: 1. in caz contrar • Aceasta permite. in timp ce print accepta un singur argument 2.

1. este necesar sa se trimita in prealabil navigatorului (folosind functia header()) un antet Content-Type. 65 Tehnologii WEB . a carui valoare trebuie sa fie text/xml sau application/xml. header ("Content-Type: application/xml") . Generarea formatului XML • Daca se doreste afisarea/utilizarea in browser a unui document XML generat dinamic pe server.•4.2. astfel: header("Content-Type: text/xml").

2. Generarea dinamică a conţinutului 4.2.1. Utilizarea datelor introduse în formularele XHTML 3.2.1. Date trimise prin metoda GET 3. Elemente XHTML si variabile asociate 3.2.1.•curs 9 66 3.1.1.2.3.3. Elementul input 3.1. Preluarea datelor introduse in formulare 3. Date trimise prin metoda POST 3. Elementul textarea 3. Alte modalitati de trimitere a datelor 4.1. Elementul select 3. Generarea formatului XML Tehnologii WEB . Generarea formatului XHTML 4.1.2.2. Generarea dinamică a formatelor textuale 4.1.

JPEG). Generarea dinamică a formatelor grafice • Serverul de aplicatii PHP ofera posibilitatea generarii dinamice a imaginilor avand diverse formate raster (GIF. PNG.2. prin utilizarea unor functii incluse in biblioteca grafica GD (Graphics Draw). aceasta va fi salvata intr-un fisier pe server sau trimisa browser-ului. • Dupa crearea unei imagini raster.•4. 67 Tehnologii WEB .

In ambele cazuri. • 68 Tehnologii WEB . imagepng(). • Daca aceasta trebuie afisata in browser. este necesar inainte de apelul uneia dintre functiile respective. se utilizeaza o functie (imageif(). care permite. care sa precizeze formatul imaginii. • De exemplu. sa se trimita un antet Content-Type. se va trimite antetul Content-Type cu valoarea image/png header("Content-Type: image/png"). printre altele utilizarea formatului imaginii. daca imaginea este in format PNG. imagejpeg()).

1.2.3. Alte modalitati de trimitere a datelor 4.1. Generarea dinamică a conţinutului 4. Elementul textarea 3.1.2.2. Preluarea datelor introduse in formulare 3.3.2.1. Generarea formatului XHTML 4.2. Generarea formatului XML Tehnologii WEB . Generarea dinamică a formatelor textuale 4.•curs 9 69 3.2.1.2.1.1. Date trimise prin metoda GET 3. Elementul select 3. Elemente XHTML si variabile asociate 3.1. Elementul input 3.1. Date trimise prin metoda POST 3. Utilizarea datelor introduse în formularele XHTML 3.

3.•4. linii vide sau date generate dinamic). • Acestea trebuie trimise inaintea oricaror date (marcaje XHTML. Utilizarea mecanismului output buffering • Scripturile PHP permit trimiterea catre client a unor anteturi HTTP (prin intermediul functiei header()) sau a unor variabile cookie (folosind functia setcookie()). 70 Tehnologii WEB .

chiar si dupa ce scriptul a inceput sa genereze date de iesire (prin intermediul instructiunii echo).• Mecanismul cunoscut sub numele de output buffering ofera posibilitatea trimiterii anteturilor HTTP si a variabilelor cookie. • Acest 71 Tehnologii WEB . deoarece datele sunt pastrate in buffer-ul de iesire si trimise ulterior. lucru este posibil.

• Pentru activare. in php.• Activarea sau dezactivarea implicita a mecanismului amintit se realizeaza intermediul directivei output_buffering. se atribuie directivei o valoare. ca in exemplul urmator: output_buffering=4096 72 Tehnologii WEB .ini (fisierul de configurare al PHP). care fixeaza (in octeti) o limita superioara pentru buffer-ul de iesire utilizat.

Întrebări? 73 .