tehnologii web 1

Upload: norbdude

Post on 14-Apr-2018

229 views

Category:

Documents


1 download

TRANSCRIPT

  • 7/30/2019 Tehnologii Web 1

    1/69

    Aplicaii Web prin limbaj PhP

  • 7/30/2019 Tehnologii Web 1

    2/69

    XAMPP este un pachet de software folosit pentru a putea crea n localpagin web dinamice.

    Cerine de sistem:

    XAMPPfuncioneaz cu sistemele de operare windows - windows XP / windows2000 / windows vista / windows 7 - Linux i Macintosh funcioneaz foarte bine cuwindows xp i windows vista.* Pentru a putea folosi XAMPP estei nevoie de minim:Procesor: 1000 MHz Pentium|| Memorie: 128 MB RAM|| Spaiu liber pe disc: 160MB||

    * Se recomand:Procesor: 2.4 GHz Pentium|| Memorie: 512 MB RAM|| Spaiu liber pe disc: 1 Gb||Internet n band larg||

    Caracteristici principaleserver web pentru folosit n local sau pentru a gzdui site-uri web;instaleaz Apache, MySQL, PHP, Perl, phpMyAdmin, FileZilla FTP Server etc;stabil, sigur, rapid i eficient; interfa simpl i intuitiv;este o aplicaie uor de folosit; suport n diferite limbi; actualizare manual: suport instalare / dezinstalare, etc;

  • 7/30/2019 Tehnologii Web 1

    3/69

    HTDOCS este radacina documentelor

    web, adica orice tip de document (fisier,director, script, etc.) web se va afla in

    acest director, fie direct in radacina lui,

    fie prin intermediul unei scheme de

    directoare.

    Atunci cand o pagina web este solicitatade browser, serverul va cauta pagina in

    acest director sau sub-directoare din el,

    nu in alta parte, pe baza adresei scrise in

    bara de adrese. Aceste pagini (fisiere) se

    scriu folosind un editor de text simplu

    (notepad, notepad2,) apoi sunt salvate inradacina arborelui de documente.

    Tipuri de fisiere :

    Fisiere php contin instructiuni ce

    trebuie executate de motorul php, iarrezultatul este trimis catre browser.

    Fisiere html: cuprind instructiuni

    despre ce si cum trebuie sa apara in

    pagina html.

    Fisiere css: cuprind instructiunidespre designul pagini html.

    Fisier javascript (extensia de fisier

    .js): permit gestionarea si folosirea

    unor efecte in pagina web.

    Fisiere multimedia: cu imagini,

    audio, video.

  • 7/30/2019 Tehnologii Web 1

    4/69

    Limbajul php Este un limbaj de programare ce ruleaz server proiectat special pentru

    paginile Web.

    Programele php sunt combinaii de 3 elemente: text, cod html, script php

    Spre deosebire de paginile HTML care puteau fi verificate si pe calculatorullocal paginile PHP nu pot fi verificate decat daca sunt gazduite pe un serverweb care are instalat PHP.

    Pentru ca un fisier sa fie considerat php viabil trebuiesc indepliniteconditiile:

    - Numele poate fi format din caractere alfanumerice [a-zA-Z0-9] liniutade subliniere "_".

    - Sa aiba extensia .php.- Instructiunile din fisier sa fie cuprinse intre expresiile In

    momentul cand serverul intalneste aceste expresii va trimite toate datele siinstructiunile aflate intre aceste expresii catre motorul php.- Intr-o pagina php poate fi si cod html si cod php; codul html este trimis

    direct catre browser, iar codul php (tot ce este scris intre ) estetrimis la prelucrat catre motorul php care la randul lui trimite rezultatul catre

    browser prin instructiuni specifice (print, echo, etc).

  • 7/30/2019 Tehnologii Web 1

    5/69

    Client, trimite cerere

    catre server

    Server Apache

    Pagina Web in server

    php Baza de dateAlte module

    Apache

    Cand se acceseaz o pagina HTML serverul care o

    gazduieste trimite pagina HTML catre browser spre

    afisare.

    In cazul unei pagini PHP serverul citeste codul PHP, ilinterpreteaza si genereaza dinamic pagina HTML care

    este trimisa browserului spre afisare.

    Acesta este motivul pentru care utilizatorii folosesc PHP

    pentru construirea unor pagini cu continut dinamic.

    1. GENERALITI

  • 7/30/2019 Tehnologii Web 1

    6/69

    Reguli:

    inchiderea unui rand se face obligatoriu cu caracterul ;

    numele functiilorNU sunt Case Sensitive (nu se face diferenta intre

    utilizarea literelor mari sau mici)

    numele variabilelor sunt Case Sensitive (se face diferenta intre utilizarea

    literelor mari sau mici)

    ghilimelele se folosesc pereche "..." sau '...', folosirea lor "...' sau '..."

    constituie o eroare

    functia echo este folosita pentru afisarea informatiilor delimitate de

    ghilimele.

    fisierul PHP poate contine intre etichetele si blocuri PHP

    delimitate de

    In situatia in care scriptul nu este scris corect PHP-ul va afisa eroarea indicandu-se si locul

    unde aceasta apare. Erorile sunt afisate doar daca serverul este setat corespunzator (in

    php.inieste setat display_errors=On si error_reporting=E_ALL).

  • 7/30/2019 Tehnologii Web 1

    7/69

    Scrierea scripturilor PHP

    Fiierele cu extensia php se salveaz n dosarul htdocs al serverului Apache.

    Afisarea datelor de iesire intr-un browser Web

  • 7/30/2019 Tehnologii Web 1

    8/69

    Test PHP

    // Comentariul pe o singura linie

    /*

    Acesta este un comentariu pe mai multe linii.

    Poate fi alcatuit dintr-un numar oricat de mare de linii.

    */

  • 7/30/2019 Tehnologii Web 1

    9/69

    Test PHP

    http://localhost/nume script.php

    http://localhost/nume%20script.phphttp://localhost/nume%20script.php
  • 7/30/2019 Tehnologii Web 1

    10/69

    2. VARIABILE

    Variabila este un container de date care poarta un nume si i se poate atribui ovaloare care poate fi modificata de mai multe ori sau salvata intr-o baza dedate.Numele dat variabilei incepe cu simbolul $ urmat de orice litera mica (a-z)sau mare (A-Z) sau cu caracterul _, darniciodata cu o cifra si nu poatecontine spatii goale.

    $nume_variabila="valoare"

    Valorile atribuite pot fi: text, numere, date complexe.

    Tipuri de variabile

    Scalareconin o singur valoare:booleene, ntregi, n virgul mobil, text

    Nescalareconin valoari multiple:tablouri, obiecte

    Tipuri de date:

    Text (string)

    Numerice: integer, double

    Boolean- String

    - Integer

    - Float

    - Array

    - Object

    - Resource- Null

  • 7/30/2019 Tehnologii Web 1

    11/69

    Variabile predefinite - care rezida in nucleul PHP, sunt alocate

    automat de catre modulul PHP, si sunt accesibile in program :

    $_SERVER[PHP_SELF] returneaz numele scriptului curent

    $_SERVER[HTTP_USER_AGENT] returneaz numele browser-ului Web i a S.O,

    $_SERVER[REMOTE_ADDR] returneaz adresa IP a utilizatorului

  • 7/30/2019 Tehnologii Web 1

    12/69

    3. IRURI DE CARACTERE

    irul (string) este o variabil care conine o combinaie denumere, litere, simboluri i spaii delimitate ntre doughilimele simple sau duble.

    irurile pot conine i nume de variabile.

    Crearea unei variabile se face prin atribuirea valorii irului decaractere unui nume valid de variabil.

    $name=Adi;

    Afiarea valorii coninute n variabil se face prin echo

    echo $name;echo Salut $name;

    Concatenarea irurilor se face prin operatorul de concatenare

    punct (.)

    Caracterul spaiu este considerat tot un ir de caractere.

  • 7/30/2019 Tehnologii Web 1

    13/69

  • 7/30/2019 Tehnologii Web 1

    14/69

    In constructia echo se poate pune orice fel de text insa pot fi cazuri in care sa

    existe conflicte cu ghilimelele magice si anume:

    Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in

    C:\xampp\htdocs\ghilimele_magice.php on line 3

    Soluii:

  • 7/30/2019 Tehnologii Web 1

    15/69

    Data nasterii este

    22.12.1986

    PHP

    Am concediu in luna iulie

  • 7/30/2019 Tehnologii Web 1

    16/69

  • 7/30/2019 Tehnologii Web 1

    17/69

    Intreg (integer) este un simplu numar intreg exprimat in sistem zecimal, hexazecimalsau octal, optional putand purta si semn (+ sau -).

    In sistem octal numarul trebuie precedat de 0, iar pentru hexazecimal precedat de 0x.

    $a=2006; //numar exprimat in sistem zecimal

    $a=-52; //numar negativ exprimat in sistem zecimal$a=0135; //numar octal (echivalent cu 207 zecimal)

    $a=0x1D; //numar hexazecimal (echivalent cu 29 zecimal)

    4. NUMERE

  • 7/30/2019 Tehnologii Web 1

    18/69

    Numerul cu virgula flotanta (float) sau dubla precizie este un numar real care poate fi

    folosit cu urmatoarea sintaxa:

    $a=3.14; //numar zecimal

    $a=-2.59; //numar zecimal negativ

    $a=1.3e2; //130

    $a=6E+3; //6000

    !La acest tip de numere separatorul zecimal este semnul punct, semnul virgula se utilizeazpentru separarea parametrilor unei funcii.

  • 7/30/2019 Tehnologii Web 1

    19/69

    Punctul este i operatorul de concatenare. Daca se dorete unirea a dou numere

    existurmtoarele posibiliti:

    1. Atribuim mai nti numerele unor variabile si apoi unim acestea cu operatorul

    punct.

  • 7/30/2019 Tehnologii Web 1

    20/69

    2. Dac dorim s unim dou valori ntregi cu ajutorul operatorului punct atunci

    trebuie s inseram cte un spaiu nainte si dup operator.

  • 7/30/2019 Tehnologii Web 1

    21/69

    4. CONSTANTE

    O constanta stocheaza o valoare, cum este si o variabila, dar aceasta valoare, dupa

    ce a fost stabilita, nu mai poate fi modificata in script.Constanta i pstreaz valoarea pe toat durata rulrii scriptului.

    Constantele pot conine orice valori unice, un numr sau un ir de caractere.

    Numele constantei conine NUMAI MAJUSCULE.

    ! O diferenta importanta intre constante si variabile, este faptul ca o constanta nuare in fata ei semnul $.

    Pentru crearea unei constante n locul operatorului de atribuire (=) se foloseste

    functia DEFINE

    define(NAME,valoare)

    Numele

    constantei scris

    cu majuscule

    Valoarea

    constantei Constante predefinite:

    PHP_VERSION - d versiunea procesorului PHP

    PHP_OS - d sistemul de operare al serverului

  • 7/30/2019 Tehnologii Web 1

    22/69

    Valorile ncadrate de ntre ghilimele simple sunt tratate literal, adic textul va fi afiat

    exact aa cum a fost scris.

    Valorile ncadrate ntre ghilimele duble sunt interpretate, adic determin nlocuirea

    unei variabile $var cu valoarea ei => dac se dorete afiarea valorii unei variabile se

    folosesc ghilimele duble.

  • 7/30/2019 Tehnologii Web 1

    23/69

    5. OPERATORI PHP

    Operatori aritmetici cu variabile

    + Adunare $a + $b

    - Scadere $a - $b

    * Inmultire $a * $b

    / Impartire $a / $b

    % Modulo $a % $b

  • 7/30/2019 Tehnologii Web 1

    24/69

  • 7/30/2019 Tehnologii Web 1

    25/69

    Operatorii de atribuire

    Principalul operator de atribuire este = si inseamna asocierea operatorului din stangacu valoarea expresiei din dreapta (a nu se confunde cu egalitatea). Valoarea unei

    expresii de atribuire este valoarea atribuita, adica valoarea lui $a=5 este 5.

    $a=7;

    $a+=6; //atribuie lui $a valoarea 13, acelasi lucru cu $a=$a+6$b="Buna ";

    $b.="ziua"; // atribuie lui $b valoarea "Buna ziua", acelasi lucru cu $b=$b."ziua";

  • 7/30/2019 Tehnologii Web 1

    26/69

    Operatori de comparatie in PHP

    == Egal $a == $b

    === Identic $a === $b!= Diferit $a != $b

    Diferit $a $b

    < Mai mic $a < $b

    > Mai mare $a > $b

    = $b

    Operatorii logici

    NOT !$a TRUE daca $a nu este TRUE

    AND $a && $b TRUE daca si $a si $b sunt TRUEAND $a and $b TRUE daca si $a si $b sunt TRUE

    OR $a || $b TRUE daca ori $a ori $b sunt TRUE

    OR $a or $b TRUE daca ori $a ori $b sunt TRUE

    XOR $a xor $b TRUE daca ori $a ori $b sunt TRUE dar nu amandoua

  • 7/30/2019 Tehnologii Web 1

    27/69

    Operatori multipli

    Intr-o constructie PHP pot fi pot fi folositi impreuna mai multi operatori.

    12+3+3=1812x3-3=33

  • 7/30/2019 Tehnologii Web 1

    28/69

    Incrementarea si decrementarea unui numar

    Marirea unui numar cu o unitate se numeste incrementare, iar scaderea cu o unitate

    se numeste decrementare.

    Incrementarea se poate realiza adunand o unitate la acel numar (sau variabila) sau se

    poate folosi varianta prescurtata; similar pentru decrementare.

    post incrementare $a++ returneaza $a si incrementeaza $a cu 1

    post decrementare $a-- returneaza $a si decrementeaza $a cu 1

    pre incrementare ++$a incrementeaza $a cu 1 si returneaza $a

    pre decrementare --$ad decrementeaza $a cu 1 si returneaza $a

  • 7/30/2019 Tehnologii Web 1

    29/69

    Numere aleatoare

    rand() este functia din PHP care genereaza automat numere aleatoare. Poate

    primi parametri limita minima si maxima a numerelor generate.

    Functia de rotunjire

    round() este functia de rotunjire si poate primi ca parametru numarul de cifre

    zecimale dupa rotunjire

  • 7/30/2019 Tehnologii Web 1

    30/69

    Structuri de control

    Aceste structuri permit definirea unei conditii si apoi executarea unor operatii functie de

    raspuns.

    if(conditie) {instructiuni executate daca este indeplinita conditia ;

    }

    IF

    Conditia este incadrata de paranteze rotunde, iarinstructiunea care se executa in

    cazul in care conditia este indeplinita intre acolade. Neindeplinirea conditiei face sa

    se execute ce urmeaza dupa inchiderea acoladei.

  • 7/30/2019 Tehnologii Web 1

    31/69

    ELSE

    Indica ce se executa in cazul in care conditia mentionata in instructiunea ifnu este

    indeplinita.

    if(conditie) {

    instructiuni executate daca este indeplinita conditia;

    } else {

    instructiuni executate daca nu este indeplinita conditia;

    }

  • 7/30/2019 Tehnologii Web 1

    32/69

    elseifeste o combinatie intre ifsi else. In cazul in care conditia if nu este indeplinita

    se introduce elseif care testeaza inca o conditie. Daca nu este indeplinita a doua

    conditie se executa declaratia introdusa prin else.

    if(conditia1) {

    instructiuni executate daca este indeplinita conditia 1;

    } elseif(conditia2) {

    instructiuni executate daca este indeplinita conditia 2;

    } else {

    instructiuni executate daca nu este indeplinita conditia 2;

    }

  • 7/30/2019 Tehnologii Web 1

    33/69

    switch este asemanatoare functiei if, dar permite conditiilor sa aibe

    mai mult de 2 valori.

    Intr-o instructiune if, conditia poate fi adevarata sau falsa, insa intr-o

    instructiune switch conditia poate lua orice numar de valori

    diferite.

    Aceasta instructiune trebuie sa contina o instructiune case care sa

    manevreze fiecare valoare dorita.

    Instructiunea compara variabila $variab cu valorile din clauzele

    Case. In caz de egalitate, executa codul din blocul respectiv pana

    intalneste break. Altfel executa blocul default break.

  • 7/30/2019 Tehnologii Web 1

    34/69

    while este o instructiune de tip bucla. Atat timp cat conditia este adevarata se

    repeta bucla.

    Asemenea instructiunii if, ea se bazeaza pe o actiune. Diferenta dintre if si while

    este aceea ca instructiunea if, daca gaseste adevarata conditia, afiseaza o singura

    data bucata de cod din ea, insa in conditia while, daca rezultatul este adevarat,

    bucata de cod din ea se va repeta atata timp cat conditia este adevarata.

  • 7/30/2019 Tehnologii Web 1

    35/69

    for este o instructiune de tip bucla.

    for (expresia1; expresia2; expresia3) {

    instructiuni de executat;

    }

    ?>

    expresia1 este evaluata la inceputul bucleiexpresia2 se verifica la inceputul fiecarei iteratii

    expresia3 se executa la sfarsitul fiecarei iteratii

    constructia for poate functiona si fara una sau toate aceste expresii

    Obs: se initializeaza variabila i cu valoarea 1, se verifica daca este mai mica sau

    egala cu 10 iar apoi se incrementeaza. La fiecare iteratie se tipareste variabila i.

  • 7/30/2019 Tehnologii Web 1

    36/69

    Foreach si tablouri

    Un tablou (array) este o lista de valori, in care fiecare valoare poate fi un sir de

    caractere, un numar sau chiar un tablou.

    Php accepta 2 tipuri de tablouri:

    - indexatefolosesc numere pentru chei (incep cu 0)

    - asociativefolosesc pentru chei siruri de caractere

    Pentru obtinerea unei valori specifice dintr-un tablou se precizeaza numele tablouluiurmat de index in paranteze patrate:

    $tablou[index]

    Tablouri globale predefinite:

    $_GET stocheaza toate variabilele si valorile trimise catre scriptul php prin

    metoda GET

    $_POST stocheaza toate variabilele si valorile trimise catre scriptul php prin

    metoda POST

  • 7/30/2019 Tehnologii Web 1

    37/69

    Ex 1: tabloul $ang

    Cheie Valoare

    0 Dan

    1 Vlad

    2 Ana

    3 Andrei

    4 Sorin

    Ex 2: tabloul $judete`Cheie Valoare

    AR Arad

    TM Timis

    BH Bihor

    CJ Cluj

    Echo $ang [2]; //Ana

    Echo $judete[TM]; //Timis

    Fiecare cheie dintablou

    trebuie sa fie unica

  • 7/30/2019 Tehnologii Web 1

    38/69

    foreach este o constructie care functioneaza doar cu tablouri, genernd erori cand

    sunt folosite variabile cu tipuri de date diferite sau variabile neinitializate.

    foreach ($array as $cheie=>$valoare) {

    instructiuni de executat;

    }

  • 7/30/2019 Tehnologii Web 1

    39/69

    include si require sunt doua functii asemanatoare folosite pentru includerea in

    paginile php a unor fisiere externe. Diferenta intre cele doua functii consta in faptul

    ca daca functia include da gres ,scriptul genereaza o avertizare, dar functioneaza in

    continuare, in timp ce la functia require , se termina executarea scriptului.

    include "fisier1.php";

    require "fisier2.html";

    breakopreste fortat executia structurilorfor,foreach, while, do..while sauswitch.break accepta optional un argument numeric care indica numarul de structuri

    imbricate a caror functionare este oprita.

    Obs: la i=6 se opreste executia buclei

  • 7/30/2019 Tehnologii Web 1

    40/69

    continue este folosita pentru a intrerupe executia secventei de instructiuni din

    interiorul unui ciclu si trecerea la urmatoarea iteratie.

    Functia continue accepta optional un argument numeric care indica numarul de

    bucle care vor fi sarite pana la sfarsit.

    Obs: sare executia peste i==5

    return

    Daca este chemata din interiorul unei functii, declaratia return() opreste imediat

    executia functiei curente si furnizeaza argumentul ca valoare a functiei.

    Daca este chemata in scop global executia scriptului curent se opreste.

  • 7/30/2019 Tehnologii Web 1

    41/69

    6. FORMULARE

    Elementul FORM

  • 7/30/2019 Tehnologii Web 1

    42/69

    Valorile Type ale elementului INPUT

    Buton reset /submit

    Exemplu:

    Exemplu:

    Casete de validare

    Exemplu:

    Butoane radio

    Exemplu:

  • 7/30/2019 Tehnologii Web 1

    43/69

    Casete de introducere a parolei

    Elementul SELECT

    Acest element este folosit pentru crearea unei liste de opiuni, fie ca un meniu care se

    desfoar, fie ca o caseta cu lista.

    Fiecare din optiunile din lista reprezint un element OPTION.

    Elementele din select

    Nume

  • 7/30/2019 Tehnologii Web 1

    44/69

    Exemplu select:

    Optiune 1

    Optiune 2Optiune 3

    Optiune 4

    Optiune 1

    Optiune 2

    Optiune 3

    Optiune 4

    Optiune 5

    Optiune 6

  • 7/30/2019 Tehnologii Web 1

    45/69

    Elementul TEXTAREA

    Acest element este asemntor cu cel text numai ca aici se poate tasta ntr-o sectiune

    mult mai mare dect n cazul text.

  • 7/30/2019 Tehnologii Web 1

    46/69

    Nume:

    Prenume:

    Varsta: sub 16 | peste 16

    Parola dorita:

  • 7/30/2019 Tehnologii Web 1

    47/69

    Manipularea unui formular

    Un script manipuleaz formularul nseamn c datele din formular vor fi:

    - retransmise ctre browser-ul Web- stocate ntr-o baz de date MySql, comparate cu valori stocate

    anterior

    - pot fi transmise prin email.

    Pagina php care primete datele din formular va atribui

    informaiile introduse unei variabile speciale $_REQUEST[ ]

    Intrrile din formularsunt transformate n variabile cu acelai

    nume.

    Transformarea automat a intrrilor din formulare n variabile cu nume similare se face prin

    $name => nu mai este necesar referirea n prealabil a variabilei $_REQUEST[ name]

    $_REQUEST[ ]

    este un tip special

    de variabil n phpcare stocheaz

    toate datele

    trimise ctre o

    pagin php prin

    metodele GET sau

    POST

    Ortografia variabilei trebuie s corespund EXACT cu valorile atributului din

    formularul html => datele introduse n caseta de text cu numele name a crei valoare este

    name, sunt accesibile prin variabila $_REQUEST[ name]

  • 7/30/2019 Tehnologii Web 1

    48/69

    Validarea datelor din formular

    Validarea datelor presupune funcii, operatori i expresii.

    Funcia Isset()verific dac o variabil are o valoare, inclusiv 0, False, ir vid,

    dar nu NULL.

    If (isset($var)) {

    //$var are o variabila} else {

    // $var nu are o valoare

    Obs: funcia isset() returneaz true n cazul irurilor vide => nu este eficient

    pentru a verifica dac un utilizator a introdus sau nu date.

    If (strleng($var)>0) {

    //$var are o variabila

    } else {

    // $var nu are o valoare

  • 7/30/2019 Tehnologii Web 1

    49/69

    Funcia Empty()varific dac o variabil are o valoare nul: ir vid, 0, Null, False

    => este folosit pentru a verifica dac utilizatorul a scris ceva n elementele de tip

    text (nume, prenume, adres, comentariu).

  • 7/30/2019 Tehnologii Web 1

    50/69

    TABLOURIUn tablou (array) este o lista de valori, in care fiecare valoare poate fi un sir de

    caractere, un numar sau chiar un tablou.Tablourile sunt structurate ca serii de perechi cheie-valoare.

    Php accepta 2 tipuri de tablouri:

    - indexatefolosesc numere pentru chei (incep cu 0)

    - asociativefolosesc pentru chei siruri de caractere

    Tablourile respect aceleai reguli de denumire ca i alte variabile. Diferena

    sintactic se refer al modul de accesare la elementele individuale ale tabloului.

    Pentru obtinerea unei valori specifice dintr-un tablou se precizeaza numele

    tabloului urmat de index in paranteze patrate:

    $tablou[index]

    Ex:echo $judete[2]; //Arad

    echo $orase[AR]; //Arad

    Echo aceasta este abrevierea

    pentru {$orase[AR]};

    La chei sir decaractere

    a) Crearea tablourilor Tablouri predefinite:

  • 7/30/2019 Tehnologii Web 1

    51/69

    Metode:

    adugnd pe rnd elementele unul cte unulEx: $array[AR]=Arad;

    $array[TM]=Timis;

    folosind funcia ARRAY() prin care se construiete tabloul printr-o singurinstruciune.

    Ex: $judete=array(AR=>Arad, TM=>Timis);

    chei valori

    Obs: dac se specific o cheie numeric pentru primul element, urmtoarele

    elemente vor fi incrementate:

    Ex: $zile=array(1=>Luni, Marti, Miercuri, Joi, Vineri);

    echo $zile[3]; //Miercuri

    Accesul la elementele tabloului se face prin funcia Foreach()Ciclul foreachatribuie iterativ valoarea fiecrui element al tabloului variabilei $value.

    Pentru un tablou de numere secvenialese poate folosi funcia RANGE()

    Ex: $days = range (1, 31);

    a) C ea ea tab ou o$_GET, $_POST, $_REQUEST

  • 7/30/2019 Tehnologii Web 1

    52/69

    Accesul la toate elementele tabloului

    Prin ciclul foreach:

    Foreach ($array as $value) {

    // face ceva cu $value

    }

    Ciclul foreach atribuie iterativ valoarea fiecrui element al tabloului variabilei$value. Pentru a avea acces atat la valori, ct i la chei, se folosetesintaxa:

    Foreach ($array as $key=> $value) {

    echo Tabloul de valori corespunzatoare lui $key este $value;

    }

  • 7/30/2019 Tehnologii Web 1

    53/69

    Numrul de elemente dintr-un tablou se poate determina prin funciaCOUNT() sau SIZEEOF().

    Ex: $nume=count($array)

    Funcia RANGE()poate genera pe lng tablouri cu numere secveniale itablouri cu litere secveniale:

    Ex: $alfabet=range(a,z)

    Cheile unui tablou pot fi iruri formate din mai multe cuvinte: primul numar,numar de telefon.

    Funcia IS_ARRAY()confirm dac o variabil este de tip tablou.n caz contrar este afiat o eroare de forma:

    Invalid argument supplied for foreach s-a ncercat folosirea unui cicluforeach pentru o variabil care nu este tablou.

    Observaii

  • 7/30/2019 Tehnologii Web 1

    54/69

    b) Tablouri multidimensionale

    Tabloul multidimensional este un tablou format din alte tablouri.

    $Moldova=array(SV=>Suceava, IS=>Iasi);

    $Ardeal=array(AR=>Arad, TM=>Timis);

    $regiuni=array(M=>Moldova, A=>Ardeal);

    Tablou multidimensional format din 2 tablouri.

    Pentru a avea acces la tabloul $Ardeal, se face referire la elementul $regiuni[A].

    Pentru a avea acces la elementul Arad, se face referirea astfel: $regiuni[A][AR].

    Se foloseste numele tabloului multidimensional $regiuni urmat de cheia primuluitablou n paranteze ptrate[A], urmat de cheia tabloului interior [AR] totntreparanteze ptrate.

    Pentru afiare ntreaga construcie se trece ntre acolade.

    Echo Judetul a carui abreviere este AR este {$regiuni [A] [AR]}

  • 7/30/2019 Tehnologii Web 1

    55/69

    c) Tablouri i iruri de caractere

    Php include 2 funcii pentru a transforma un tablou n ir de caractere iinvers.

    Funcia EXPLODE()transform irul de caractere $stringn tabloul $arrayprin specificarea separatorului, adic a codului care delimiteaz diferitele

    elemente din tabloul generat.

    $array=explode(separator, $string);

    Ex:

    $string1=L - Ma Mi J V S - D;$zile_array=explode( , $string1);

    Tablou cu 7elemente

    Avndindex zero

  • 7/30/2019 Tehnologii Web 1

    56/69

    Funcia IMPLODE()transform tabloul $arrayn irul de caractere

    $string prin specificarea conectorului, adic caracterele sau codulcare va fi inserat ntre valorile tabloului n irul de caractere generat.

    $string=implode(conector, $array);

    Ex:

    $string2=implode(,, $zile_array);

    $string2 este un ir de caractere desprite prin virgul.

  • 7/30/2019 Tehnologii Web 1

    57/69

    d) Sortarea tablourilor

    Php include cteva funcii pentru sortarea elementelor unui tablou.

    $nume=array(Vlad, Cristi, Adi, Mihai);

    Sort($nume);

    Funciile de sortare efectueaz 3 tipuri de sortri:- se poate sorta un tablou dup valori, renunnd la cheile

    originale, folosind funcia SORT().n acest caz, cheile originale aletabloului vor fi reiniializate dup procesul de sortare.

    - se poate sorta un tabloudup valori, pstrnd cheileoriginale, folosind funcia ASORT()

    - se poate sorta un tablou dup chei folosind funcia KSORT().

    Obs: toate aceste sortri pot fi fcute n ordine invers dac senlocuiesc funciile cu RSORT(), ARSORT(), KRSORT().

  • 7/30/2019 Tehnologii Web 1

    58/69

    Crearea i apelarea funciilor proprii

    Functiile reprezinta secvente de cod care sunt apelate frecvent in cadrul codului

    PHP.

    Majoritatea funciilor preiau argumente, reprezentnd valori care influeneaz

    operarea i rezultatul funciei. Pentru a specifica argumente, acestea se insereaza

    ntre paranteze; dac se specific mai mult de un argument, fiecare argument

    trebuie separat de vecinul su printr-o virgul.

    Argumentul unei funcii poate fi o valoare literal, o variabil sau o expresie.

    Unele funcii PHP au argumente opionale, care pot fi specificate sau omise.

    1. Definiia i utilizarea funciilor

  • 7/30/2019 Tehnologii Web 1

    59/69

    Obs: Cnd se produce o eroare n timpul executiei unei funcii, PHPgenereaza mesaje de eroare. Uneori, asemenea mesaje de eroare sunt

    nedorite. n acest caz, se poate suprima generarea mesajelor de eroareprin adaugarea n faa numelui funciei a caracterului @.De exemplu,, pentru a suprima mesajele de eroare care pot aparea ntimpul executiei functiei "f()", se scrie aceast funcie astfel:y = @f(x);

    Exemple de funcii:

    Funcia rand(), care genereaza un numar ntreg aleator

    $nr = rand(1, 500);echo $nr;

    Functia isset() preia ca argument de obicei o variabila si arata daca aceasta afost sau nu setat. Functia returneaza TRUE daca variabila "$nr" are setata ovaloare (diferita de NULL), in caz contrar returneaza FALSE.

    isset($nr)

  • 7/30/2019 Tehnologii Web 1

    60/69

    2. Includerea fiierelor multipleFunctiile PHP permit obinerea accesului la programe PHP scrise anterior, create ntr-un alt fisier extern.

    Pentru aceasta se poate folosi functia require(), care are urmatoarea forma:

    require("nume_fisier")

    Cnd este ncarcat un script PHP care contine o instructiune require, continutulfisierului specificat este inserat si executat n script, nlocuind instructiunea require.

    Astfel se insereaz instruciunea la nceputul scriptului din fiecare pagina PHP, ca inexemplu urmator:

    Ca urmare se determin programul PHP s includ coninutul fiierului "antet.php" cai cum coninutul respectiv ar face parte din acel script.

  • 7/30/2019 Tehnologii Web 1

    61/69

    O alta functie, similara instructiunii require este functia include().

    Spre deosebire de functia require() care introduce datele din fisierul extern intocmaicum sunt scrise, functia include() este o instructiune executabil ce determinevaluarea scriptului PHP din fisierul extern i codul acestuia este executat ca i cumar fi aprut n textul scriptului unde este inclus.

    Sintaxa functiei include() este urmatoarea:

    include("nume_fisier.php");

    Functia corelata require_once() asigura faptul ca fisierul specificat este inclus osingura dat ntr-un script dat. n cazul n care se creaz fisiere externe care si elefolosesc instructiunea require pentru a include continutul altor fisiere externe,instructiunea require_once este foarte utila.

    3 D fi i i f ii

  • 7/30/2019 Tehnologii Web 1

    62/69

    3. Definirea unei funcii

    Pentru a defini o functie, n PHP funciile incep intotdeauna cu declaratia: function, cain exemplul urmator:

    function nume_functie(nume_argument) {// Codul functiei

    }

    Cuvntul cheie "function", "numele_functiei" si "nume_argument" alcatuiesc antetulfunctiei.

    Numele funciilor nu prezinta sensibilitate la diferena ntre majuscule si minuscule; caatare, "f()" si "F()" reprezinta referiri la aceeasi funcie. Numele funciei poate fi oricecombinaie de litere, cifre i liniue de subliniere, dar trebuie s nceap cu o liter saucu liniu de subliniere.Nu se poate folosi pentru o funcie proprie numele unei funcii existente (echo, print, ..)Dac se dorete definirea unei funcii care nu are argumente, se poate omite

    "nume_argument";Dac se dorete definirea unei funcii cu mai multe argumente, se pot includeargumente suplimentare dupa "nume_argument", fiecare argument fiind separat devecinul su printr-o virgul. Parantezele i numele argumentelor incluse ntre acesteapoarta numele de lista cu argumente.

  • 7/30/2019 Tehnologii Web 1

    63/69

    Ex: o funcie care calculeaz aria unui dreptunghi:

    Lista cu argumente a functiei "arie()" include argumentele $latime si $inaltime.Corpul functiei este alcatuit dintr-o singura instructiune; cu toate acestea, corpulunei functii poate contine mai multe instructiuni.

    Dac se dorete ca o funcie s returneze o valoare, trebuie determinat ca

    funcia s execute o instruciune return care furnizeaza valoarea respectiv.

    Obs: Instructiunea return determina sistarea executarii funciei; nu este necesarca aceasta s fie ultima instructiune fizica din corpul functiei. Dac se definete ofuncie care nu are nici o instruciune return (sau pentru date de ieire, precum"echo"), funcia va returna valoarea speciala NULL.

  • 7/30/2019 Tehnologii Web 1

    64/69

    4. Apelarea unei funcii definite de utilizator

    O functie definita de utilizator poate fi apelata ca orice functie.De exemplu, urmtoarea instruciune apeleaz funcia "arie()" din exemplulanterior:

    Valorile argumentelor, 5 si 3, le nlocuiesc pe acelea ale argumentelor din corpulfunciei, care se comporta ca si cum ar fi fost scris astfel:

    return 5*3

    Rezultatul afisat al acestui script va fi :

    Aria este : 15

    5. Terminarea execuiei unui script

  • 7/30/2019 Tehnologii Web 1

    65/69

    pO instruciune return determin sistarea executiei funciei care o contine. In cazuln care se dorete sistarea prelucrrii unui ntreg script, se poate invoca functiaexit().

    Dupa executie, scriptul afiseaza:

    Unu...Doi...

    6 F tii i

  • 7/30/2019 Tehnologii Web 1

    66/69

    6. Functii recursive

    Este posibil ca o funcie din PHP s se auto-apeleze. O funcie care procedeazastfel se numete "funcie recursiv".

    Dac se ruleaz acest script, rezultatul afisat va fi 8.

  • 7/30/2019 Tehnologii Web 1

    67/69

    Obs:

    - Variabila "$x" primete ca valoare funcia "recursor()" careia ii transmite ca

    argument numrul 3.

    - Funcia "recursor()" incrementeaz cu o unitate valoarea argumentului, prin

    "$nr++;" care devine 4, apoi condiia "if ($nr

  • 7/30/2019 Tehnologii Web 1

    68/69

    7. Definirea argumentelor prestabilite

    PHP permite definirea unei funcii cu argumente prestabilite. Dac se apeleaz o

    funcie care are un argument prestabilit, dar nu se furnizeaz nici o valoare pentruargumentul respectiv, argumentul ia o valoare prestabilita specificat la inceput.

  • 7/30/2019 Tehnologii Web 1

    69/69

    Obs:Functia impozit_vanzari preia doua argumente: un argument obligatoriu, denumit

    $cantitate, si un argument prestabilit, denumit $rata.

    Dac se apeleaz funcia i se furnizeaz un singur argument, valoareaargumentului respectiv se consider ca fiind valoarea argumentului $cantitate, iarvaloarea 0.0725 se folosete ca valoare a argumentului $rata.Astfel, la prima invocare a functiei, pentru "impozit1", $rata are valoarea 0.09,specificat drept al doilea argument al funciei.Cu toate acestea, la a doua invocare a functiei, pentru "impozit2", $rata arevaloarea 0.0725 deoarece este specificat valoarea unui singur argument, i astfel"$rata" a preluat valoarea prestabilita iniial.

    Rezultatul afisat va fi:cumparaturi = 123.45impozit1 = 11.1105

    cumparaturi = 123.45impozit2 = 8.950125