tehnologii web 1
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