CATEGORII DOCUMENTE |
Limbajul PHP. Notiuni generale
1. Inainte de a incepe. Instalare PHP
Inainte ca paginile care contin cod PHP sa poata fi vizualizate, este nevoie sa instalati interpretorul PHP. Acesta actioneaza ca o componenta a serverului web care este invocata de ori cate ori o pagina PHP este intalnita. Aceasta componenta proceseaza pagina si apoi o transmite inapoi la web-server, ajungand in final in browserele utilizatorilor. Acest proces este prezentat in imaginea de mai jos
Deservirea unei pagini statice, fara interventia interpretorului PHP
Deservirea unei pagini dinamice, modificata de PHP in momentul request-ului
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, aceeasi pagina poate avea continut diferit. Aceasta proprietate este denumita dinamism, iar o astfel de pagina este considerata pagina dinamica.
Pentru ca fisierele ce contin cod PHP sa poata fi interpretate, devenind astfel dinamice, serverul web trebuie configurat pentru 'comunicarea' cu modulul PHP.
Pentru
inceput, cea mai simpla modalitate de a avea totul pregatit pentru a lucra cu
PHP este un pachet 'All in one'. Voi descrie pe scurt pasii necesari
instalarii programului EasyPHP, o aplicatie care include serverul web Apache,
interpretorul PHP, sistemul de gestiune a bazelor de date MySQL si aplicatia de
administrare a bazelor de date phpMyAdmin.
Nota: trebuie sa dezinstalati Apache, PHP sau MySQL de pe calculator (daca le
aveti deja) inainte de a instala EasyPHP.
Retineti! Toate fisierele PHP pe care le scrieti (inclusiv cele de test preluate de pe acest site) *trebuie* salvate in folderul Document Root (locatia implicita este C:Program FilesEasyPHP 3.0www). Webserver-ul local instalat de EasyPHP va cauta fisierele doar in aceasta locatie. Daca fisierele sunt salvate in alta parte ele nu vor mai putea fi accesate in browser.
Instaland EasyPHP, calculatorul personal devine un server web (local, ce-i drept - accesibil doar de catre tine). Practic PC-ul se comporta ca un site ce are adresa https://localhost/ (sau https://127.0.0.1/). Este foarte important ca fisierele PHP sa fie accesate prin intermediul serverului web, deoarece acesta recunoaste scripturile PHP si invoca automat interpretorul PHP. Fara aceasta intermediere oferita de web-server, scripturile PHP nu ar fi procesate ci trimise asa cum sunt la browser.
De exemplu, avem un fisier care contine doar urmatorul cod: (atentie la semnul ! in afara tagurilor)
<?php print 'Salut'; ?> !Sa presupunem ca
fisierul se numeste salut.php.
- Daca il accesam in browser folosind adresa
'https://localhost/salut.php' (prin intermediul serverului web local)
atunci interpretorul PHP este invocat, scriptul este executat iar rezultatul
procesarii afisat de browser va fi 'Salut!'.
- Daca accesam fisierul direct de pe disc, scriind in
browser calea lui 'file:///C:/Program Files/EasyPHP
3.0/www/salut.php' se va afisa (in cel mai fericit caz) doar
'!'. Asta pentru ca interpretorul PHP nu este invocat, iar fisierul
este transmis ca atare, cu tagurile de PHP (care sunt ignorate de browser).
2. Ce inseamna PHP?
Pe scurt, ce este PHP? Ca idee generala, PHP reprezinta un limbaj ce permite modificarea paginilor web inainte ca acestea sa fie transmise de server catre browserele utilizatorilor. PHP poate insera text intr-ul fisier HTML deja definit, poate defini un fisier HTML de la zero, poate sa afiseze o imagine sau sa redirectioneze utilizatorul catre alta pagina. In cadrul acestui proces, PHP poate consulta baze de date, fisiere externe sau orice alta resursa, poate trimite email-uri sau executa comenzi ale sistemului de operare.
Modul in care PHP modifica/defineste o pagina ce va fi afisata de browser este prin instructiunile scrise de programator si delimitate de etichetele <?php ?>. Astfel, orice se afla intre aceste tag-uri va fi executat de interpretorul PHP si inlocuit cu rezultatul executiei. Ce este in afara lor ramane neschimbat si este transmis catre browser. Spre exemplu, avem o pagina ca mai jos.
<html>Rezultatul va fi o pagina HTML ce va contine cuvintele 'Azi e' si rezultatul codului PHP (in cazul acesta - data curenta). Codul HTML final, transmis de server in urma procesarii PHP este urmatorul:
<html>Codul PHP nu trebuie sa fie neaparat intercalat in pagina HTML. Secventa de mai jos produce o pagina similara celei de mai sus (in acest caz PHP produce o pagina HTML de la zero).
<?phpNota: interpretorul PHP nu este instalat implicit pe orice calculator. Pentru ca toate exemplele de pe site sa functioneze, trebuie sa instalati (manual) un interpretor. Vedeti sectiunea 'Inainte de a incepe' pentru detalii.
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:
<?phpProbabil 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 simpluDesi 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'
<?phpVerificand 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:
<?phpSursa paginii arata in felul urmator:
SalutIn 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:
SalutAcesta 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 expres. Spre exemplu fie urmatoare secventa de cod:
<?phpRezultatul va fi
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.
3. Notiuni de baza
Codul PHP trebuie inclus in fisierele 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.
<?phpCodul 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 (care poate fi sau nu cod HTML). Pentru a obsine 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. Exista si alte modalitati, dar aceste 3 instructiuni sunt cele mai uzuale si usor de folosit. Diferente intre ele exista (vezi https://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40), dar ca idee generala print si echo fac acelasi lucru si poate fi folosita oricare dintre ele. printf este folosita mai rar datorita sintaxei oarecum greoaie.
<?phpAlte instructiuni, la fel de uzuale ca cele de afissare, sunt cele de atribuire. Acestea sunt explicate mai pe larg in sectiunea 'Variabile. Constante'.
In afara de aceste 2 categorii, la fel de des intalnita este instructiunea if. Aceasta se numeste instructiunea de test si este folosita pentru a executa o secventa de cod in functie de valoarea de adevar a unei conditii. Exista mai multe forme, prezentate mai jos:
if( conditie ) instructiune 1;Aceasta forma permite executarea
unei instructiuni numai daca este indeplinita o conditie. Conditia poate fi
orice expresie de genul '2 < 3', 'variabila $a este
definita', s.a. tradusa in limbajul PHP.
Instructiunea poate fi simpla (o singura instructiune) sau un bloc (mai multe
instructiuni delimitate de acolade). Regula este ca atunci cand este nevoie sa
se execute mai mult de o instructiune, trebuie creat un bloc
(trebuie folosite acoladele).
Exemplu:
Atentie! Daca nu se foloseste un bloc in cadrul instructiunii if, atunci doar prima instructiune dintre cele existente se executa in urma evaluarii conditiei, pe cand celelalte se vor executa intotdeauna, indiferent de rezultatul verificarii. De exemplu:
<?phpCodul de mai sus va afisa:
Este 3 mai mic decat 2? <br />Pentru ca nu am inclus cele 2 instructiuni print intr-un bloc, a doua instructiune s-a executat indiferent de valoarea de adevar a conditiei. Codul corect (din punct de vedere logic) ar fi urmatorul, care contine un bloc de instructiuni:
<?phpDe multe ori este nevoie sa se specifice o instructiune ce trebuie executata daca nu este indeplinita conditia. In acest caz se foloseste if - else.
if( conditie ) instructiune 1;Aceasta forma permite executarea unei instructiuni atunci cand se indeplineste conditia sau executarea alteia diferite in caz contrar. Aceleasi observatii ca ti mai sus se aplica.
In majoritatea scripturilor PHP se lucreaza cu bucati de text denumite siruri de caractere sau string-uri. PHP prezinta particularitati in modul in care sunt folosite stringurile, particularitati ce sunt prezentate in exemplele de mai jos.
Nota: sirurile de caractere reprezinta expresii (entitati ce au/returneaza o valoare). Asadar, un string poate fi folosit, pe langa, afisare, in atribuiri, la verificari, etc.
In exemplele ce urmeaza s-a optat pentru afisarea sirurilor.
<?phpNota: in acest exemplu nu este nicio diferenta intre modul de afisare a sirurilor delimitate prin ghilimele si cele delimitate prin apostrof. Cu toate astea, PHP trateaza in mod diferit aceste caractere. Mai multe explicatii si exemple sunt prezentate in pagina 'Variabile.Constante'.
<?phpComentariile 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 niciun efect.
<?phpNota: comentariile /* */ nu pot fi imbricate (unele in altele). Exemplul urmator nu este un cod valid.
<?phpEste un lucru foarte util sa folositi comentarii in cod pentru a explica modul de rezolvare a problemei abordate, sau pentru a da detalii despre operatiile efectuate. Acestea va vor ajuta mai tarziu daca veti vrea sa modificati codul scris, sau vor oferi altor persoane informatii (valoroase) despre cum ati gandit codul respectiv.
Nota: instructunile die si exit sunt echivalente.
4. Functii in PHP
Functiile sunt blocuri de cod PHP (secvente de cod) bine delimitate si identificate printr-un nume, ce executa un set de operatii. Functiile pot fi executate de mai multe ori in cadrul unui script prin simpla apelare a numelui lor.
Exista functii predefinite, specifice limbajului PHP (cum ar fi print, empty, etc) ce pot fi folosite in orice moment, fara a fi nevoie de vreo actiune speciala; si exista functii definite de utilizator, scrise practic de programatori. Pentru ca acestea sa poata fi folosite este nevoie sa fie declarate (si implementate).
Exemplu de functie definita de utilizator:
<?phpRezultatul codului PHP este reprezentat mai jos:
Luna inceperii activitatii:Am scris, asadar, o singura data codul care afiseaza lunile anului si l-am apelat de cate ori am avut nevoie. Apelarea functiei se face prin specificarea numelui urmat de paranteze. Intre paranteze se pot specifica parametrii, dupa cum vom vedea mai jos. Alternativ, o functie definita de utilizator se poate apela folosind instructiunea call_user_func
# vom rescrie ultima parte a coduluiInstructiunea call_user_func este utila atunci cand numele functiei este furnizat de o variabila, cu ajutorul careia se poate apela dinamic o functie. Exemplu:
<?phpFoarte important de stiut este faptul ca variabilele definite in afara functiilor nu sunt disponibile in interiorul lor. Astfel, codul de mai jos nu va functiona asa cum ne asteptam:
<?phpFunctia nu va afisa mesajul, asa cum v-ati fi gandit la prima vedere. Asta pentru ca ce este definit in afara functiei nu este recunoscut in interior. In mod similar, variabilele definite in interiorul unei functii se pierd si NU sunt disponibile in afara acesteia.
Exista totusi o modalitate prin care variabilele definite in afara unei functii sa fie 'aduse' in interiorul ei: folosind intructiunea global.
<?phpDaca e nevoie sa se foloseasca mai multe variabile globale in cadrul unei functii, acestea se pot specifica toate intr-o singura instructiune global:
Printre avantajele folosirii functiilor, se numara:
De multe ori este nevoie ca o functie sa returneze o valoare. Majoritatea functiilor predefinite fac lucrul acesta; spre exemplu empty returneaza TRUE sau FALSE in functie de starea si continutul unei variabile transmise ca parametru.
Si functiile definite de utilizator pot returna o valoare, cu ajutorul instructiunii return. Exemplu:
<?phpDe asemenea, functtile pot primi date ce pot fi folosite in interiorul lor pentru diverse prelucrari. Aceste date de intrare sunt transmise sub forma de parametrii.
Pentru ca o functie sa poata primi parametrii, acestia trebuie sa ii declari intre parantezele rounde, ca in exemplul de mai jos
<?phpNota: intrucat functia minim() returneaza o valoare, ea poate fi folosita ca si cum ar fi un numar normal. De aceea apelul de mai sus este valid. Alte exemple valide sunt mai jos:
<?phpO facilitate avansata oferita de limbajul PHP este folosirea valorilor predefinite pentru parametrii functiilor. Aceasta permite ca o functie sa nu fie apelata cu toti parametrii ei, urmand ca pentru valorile care lipsesc sa fie folosite valorile predefinite. Functia minim() definita mai sus poate fi rescrisa in felul urmator:
<?phpDeclararea functiei de mai sus se traduce in felul urmator: daca functia minim() nu este apelata cu toti parametrii, atunci foloseste valoarea 1 pt $a si valoarea 2 pt $b in calculele din interiorul functiei. In acest caz, functia se poate apela in felul urmator:
<?phpPe langa functionalitatile standard, explicate mai sus, limbajul PHP dispune de alte caracteristici mai avansate. Astfel, pot fi definite functii ce pot primi oricati parametrii este nevoie, pot fi apelate functii la un interval de timp, pot fi executate functii de fiecare data la terminarea executiei unui script PHP, etc.
Acestea nu sunt insa lucruri folosite de zi cu zi, asa ca prezentarea lor depaseste scopul acestui site. Nu trebuie sa le invatati acum, ci doar sa stiti ca exista.
Mai jos amintite sunt cateva din functiile avansate ce pot fi folosite:
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 2001
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved