Guest dizzy Posted December 20, 2011 Share Posted December 20, 2011 Rezultatul unui script PHP este de obicei text simplu care, de cele mai multe ori, este interpretat ca fiind cod HTML. Cu alte cuvinte, in majoritatea cazurilor PHP returneaza o pagina 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. Spre exemplu, fie urmatoarea secventa de cod: <?php print "Salut"; print "Acesta este un script simplu"; ?> Probabil v-ati astepta ca rezultatul sa fie un text afisat pe 2 linii. Salvand aceasta secventa intr-un fisier PHP si accesandu-l prin intermediul unui web-server, veti observa ca rezultatul este urmatorul: SalutAcesta este un script simplu Desi este confuz, rezultatul este corect. Codul PHP afiseaza doar caracterele care i-au fost indicate. Sfarsitul de linie reprezinta un caracter separat, ne-printabil, dar care controleaza cum apare textul pe ecran. In cazul nostru, nu s-a transmis acest caracter (numit si new-line) si prin urmare PHP nu l-a afisat. Sa rescriem exemplul de mai sus pentru a se afisa si caracterul "sfarsit de linie" <?php print "Salut"; print "\n"; # se afiseaza caracterul "new-line" care determina trecerea la un rand nou # randul nou va fi afisat in textul trimis catre browser print "Acesta este un script simplu"; ?> Verificand iar in browser veti constata ca nu s-a schimbat nimic. La prima vedere. In realitate rezultatul este afisat pe 2 linii, in textul trimis de PHP catre browser. Intrucat pagina este interpretata ca fiind HTML, browserul ignora caracterele new-line. Pentru verificare vizualizati sursa paginii (meniul View din browser -> view source). Pentru a ajunge la efectele dorite (acelea de a afisa un text pe 2 linii) trebuie folosit urmatoarea secventa: <?php print "Salut"; print "\n"; # acum se afiseaza caracterul care determina trecerea la un rand nou # randul nou va fi afisat in textul primit de browser (vizibil in sursa HTML) print "<br>"; # se afiseaza tagul BR ce va fi interpretat de browser ca 'linie noua' # linia noua va fi afisata in pagina finala HTML dupa ce este interpretata de # browser si nu are nici o legatura cu \n print "Acesta este un script simplu"; ?> Sursa paginii arata in felul urmator: Salut <br>Acesta este un script simplu In browser nu apare tagul BR, intrucat acesta este interpretat ca sfarsit de linie. Caracterul "new-line" afisat de noi (in print "\n") este ignorat oricum. Rezutatul: Salut Acesta este un script simplu Nota: Este foarte important sa se inteleaga diferenta dintre ceea ce se returneaza in urma executiei unui script PHP si ceea ce se afiseaza propriu-zis in browser. Pe scurt, PHP printeaza cod HTML care este afisat diferit de browsere. De asemenea, trebuie inteles faptul ca functia print nu afiseaza textul pe mai multe linii daca nu se specifica acest lucru in mod express. Spre exemplu fie urmatoare secventa de cod: <?php print "1"; print "2"; print "3"; ?> Rezultatul va fi 123 S-a afisat doar ce s-a indicat, 3 caractere, pe o singura linie, fara spatii. Un alt lucru important de retinut este faptul ca odata printat, un text nu mai poate fi "sters". Nu exista "undo" pentru un print. Se poate captura intregul continut ce se transmite la finalul executiei, dar nu se poate altera textul afisat de o instructiune print anume. Intelegand aceste aspecte va va fi mai usor in lucrul cu PHP si in modul in care verificati rezultatele scripturilor voastre. Link to comment Share on other sites More sharing options...
Recommended Posts