Sunteți pe pagina 1din 31

Baze de date

Cursul II

Baze de date Lect.dr. P. Postolache

PHP


Ca i alte limbaje de scripting pentru Web, PHP v


permite s furnizai un coninut Web dinamic.

Mai mult, spre deosebire de limbajele de scripting,


precum JavaScript, PHP ruleaz pe serverul Web, nu n
browserul Web. n consecin, PHP poate obine accesul
la fiiere, baze de date i alte resurse inaccesibile
programului JavaScript.

Baze de date Lect.dr. P. Postolache

PHP


Un script PHP:


Numele fiierului trebuie s fie alctuit numai din caractere minuscule,


cifre i underscore i minus. Utilizarea spaiilor i a altor caractere
este interzis.
Extensia numelui fiierelor trebuie s fie .php sau .html





ScriptulMeu.php
scriptul_tu.php
scriptul-lui.php3
scriptul-ei.php

Poate executa trei operaii elementare:






Obine date de la un utilizator.


Execut prelucrri ale datelor, respectiv obin accesul la datele stocate n
fiiere i baze de date i le manipuleaz.
Afieaz date astfel nct un utilizator s le poat vizualiza.

Baze de date Lect.dr. P. Postolache

PHP
<?php
// script-exemplu.php
// Acest script afiseaza un mesaj vizibil pentru
// utilizator.
echo(Acesta este un script foarte simplu.);
echo(<H2>Iat vine-un sol de pace</H2>);
?>

Dup ce ai creat un script PHP, pentru a-l executa, acesta


trebuie ncrcat pe un server WEB cu suport pentru PHP.

Baze de date Lect.dr. P. Postolache

Limbajul PHP


Variabile:


ncep cu $ urmat neaprat de o liter sau _:


$temperatura = 22.3;

Tipul unei variabile se poate modifica dac atribuii


variabilei o valoare de un tip diferit fa de cel al valorii
curente a variabilei.


De exemplu, instruciunea de atribuire


$x = 1;
atribuie variabilei $x tipul ntreg. Dac instruciunea de atribuire
$x = 1.5;
va fi executat ulterior, atunci variabila $x devine de tip dublu.

Baze de date Lect.dr. P. Postolache

Limbajul PHP


Operatori:







+, -, /, *, % (Modulo)
++ Incrementare
Decrementare
. Concatenare
== Egal cu
=== Identic cu (testeaz i tipul variabilei)

La ++ i se pune problema ca la C (pre- sau postincrementare)


$x = ++$y; respectiv $x = $y++;

$nume_botez=Radu;
$nume_familie=Vasilescu;
$nume=$nume_botez. .$nume_familie;

Baze de date Lect.dr. P. Postolache

Limbajul PHP


Funcii (unele):









abs(x) valoarea absolut a lui x


ceil(x) valoarea x, rotunjit la ntregul imediat superior
floor(x) valoarea x, rotunjit la ntregul imediat inferior
max(x,y,...) valoarea maxim a unui set de valori
min(x,y,...) valoarea minim a unui set de valori
pow(x,n) numrul x, ridicat la puterea specificat n
strftime(f) data curent, formatat conform coninutului
parametrului f
sqrt(x) rdcina ptrat a lui x

$lungime=sqrt($arie);
7

Baze de date Lect.dr. P. Postolache

Formulare HTML


Cea mai simpl pagin WEB:


<HTML>
<HEAD>
<TITLE>Titlul paginii este inserat aici</TITLE>
</HEAD>
<BODY>
Coninutul paginii este inserat aici
</BODY>
</HTML>

Formulare:


<FORM METHOD="metoda" ACTION="url"> F </FORM>


unde metoda = POST sau GET
8

Baze de date Lect.dr. P. Postolache

Formulare HTML


POST/GET:

Dac intrm pe Google i cutm php pagina cu


rezultatele cutrii va avea adresa:
http://www.google.com/search?hl=en&q=php
Putem presupune c aceasta este rezultatul unui formular
precum:

<FORM METHOD=GET ACTION=http://www.google.com/search>


<INPUT TYPE=TEXT NAME=q>
<INPUT TYPE=SUBMIT VALUE=Google search>
</FORM>

Baze de date Lect.dr. P. Postolache

Interaciunea HTMLPHP
<?php // Fiierul p-3-1.php
phpinfo();
?>
___________________________________________________________________
<HTML>
<HEAD> <TITLE>Numele i adresa de e-mail ale utilizatorului</TITLE>
</HEAD>
<BODY>
<FORM METHOD=GET ACTION=p-3-1.php>
<H3>Numele i adresa de e-mail ale utilizatorului</H3>
<BR>Nume:<BR><INPUT TYPE=TEXT NAME=numele_utilizatorului>
<BR>E-mail:<BR><INPUT TYPE=TEXT NAME=adresa_email>
<BR><INPUT TYPE=SUBMIT VALUE=Trimite datele>
</FORM>
</BODY>
</HTML>

10

Baze de date Lect.dr. P. Postolache

Interaciunea HTMLPHP

11

Baze de date Lect.dr. P. Postolache

Interaciunea HTMLPHP


Cmpuri ascunse


Uneori este util crearea aa-numitelor cmpuri ascunse.


Valorile cmpurilor ascunse sunt trimise la server alturi de
valorile altor controale; cu toate acestea, utilizatorul nu are
posibilitatea de a vizualiza sau manipula valorile cmpurilor
ascunse.
Cmpurile ascunse se utilizeaz frecvent n cadrul unei serii de
formulare. De exemplu, datele introduse de utilizator n primul
formular din serie pot fi necesare n formularele ulterioare, n
loc de a determina utilizatorul s introduc datele n fiecare
formular, acestea pot fi stocate n cmpuri ascunse, create i
iniializate de scriptul care prelucreaz primul formular. Pentru a
crea un cmp ascuns, folosii urmtoarea sintax:
<INPUT TYPE=HIDDEN NAME=text VALUE=text>
12

Baze de date Lect.dr. P. Postolache

Constante i tipuri de variabile


<?php
$raza = 2;
$pi = 3.14159;
$arie = $pi*$raza*$raza;
echo Valoarea variabilei \$aria este $arie.;
?>


Pentru a defini o constant, folosii funcia define():

define(PI, 3.14159);
$arie = PI*$raza*$raza;

13

Baze de date Lect.dr. P. Postolache

Constante i tipuri de variabile




Boolean:


TRUE (adevrat):




sau FALSE (fals):






$a = TRUE;
$a = 1;
$a = -1;
$a = FALSE;
$a = 0;
$a = ; //irul vid

n baza 8

ntreg i Floating-point:



14

n baza 16

$a = 1234; $a = -123; $a = 0123; $a = 0x1AB;


$a = 1.23; $a = 1.2e3; $a = 7E-10;

Baze de date Lect.dr. P. Postolache

Constante i tipuri de variabile




String:


definirea cu ghilimele simple:


$a = Acesta este un string;

definirea cu ghilimele duble:


$a = Acesta este un string;

Pentru afiarea caracterului apostrof ( ) n cadrul textului,


acesta trebuie precedat de caracterul backslash ( \ ). La fel se
procedeaz pentru afiarea caracterului backslash ( \ ).



15

Exemplu:
$a = 'Arnold a spus: "I\'ll be back"';
//Va afia: Arnold a spus: Ill be back

Baze de date Lect.dr. P. Postolache

Constante i tipuri de variabile




Cea mai important diferen dintre cele dou modaliti este


c n cazul al doilea pot fi inserate caractere speciale, iar dac
n cadrul textului apare o variabil, aceasta va fi nlocuit
cu valoarea coninut n ea.


Exemplul 1:
$x = 40;
$a = Afara sunt $x grade Celsius.;
//Va afia: Afara sunt 40 grade Celsius.

Exemplul 2:
$x = 40;
$a = Afara sunt $x grade Celsius.;
//Va afia: Afara sunt $x grade Celsius.

16

Baze de date Lect.dr. P. Postolache

Constante i tipuri de variabile




Tablouri:


Pentru a crea un tablou, atribuii unui element al tabloului o


valoare i o cheie. De exemplu, instruciunea de atribuire
$clasa[1] = geometrie;
creeaz un tablou denumit $clasa i un element cu valoarea
"geometrie" identificat prin cheia 1. Pentru a stoca n tablou o a
doua valoare, putei folosi urmtoarea instruciune de atribuire:
$clasa[2] = contabilitate;
Cheile folosite pentru identificarea elementelor unui tablou nu
trebuie s fie numere consecutive; nici mcar nu trebuie s
fie numere:
$preferine[Nelu] =ngheat elveian cu
migdale simpl;
$preferine[Gina] = cpuni;
17

Baze de date Lect.dr. P. Postolache

Constante i tipuri de variabile




Variabile:
$a = banana;
$b = &$a; //variabila $b va contine stringul banana
$b = portocala; //modificand $b se va modifica si $a
--------------------------------------------------------------$a = 1; /* variabila globala */
Function Test () {
echo $a; /* referinta spre o variabila locala */ }
Test ();
Nu afieaz nimic
--------------------------------------------------------------$a = 1; /* variabila globala */
Function Test () {
global $a;
echo $a; /* referinta spre o variabila locala */ }
Test ();

Afieaz 1
18

Baze de date Lect.dr. P. Postolache

Constante i tipuri de variabile




Dubla indirectare sau variabile dinamice:


$alta = 'Hello world!';
$myvar = 'alta';
echo $myvar;
echo $$myvar;
//Va afia la primul echo alta i la al doilea Hello world!

Se spune c o variabil dinamic face o referin indirect la


valoarea sa. Cu alte cuvinte, o variabil dinamic nu conine,
practic, propria sa valoare. n schimb, conine amplasamentul
unde se poate gsi valoarea; cu alte cuvinte, numele unei alte
variabile.

Util!!!
19

Baze de date Lect.dr. P. Postolache

Constante i tipuri de variabile




Conversiile automate de tip:


$x =
$y =
$z =
echo


1;
2.5;
$x+$y;
$z; //Va afisa 3.5

$z este automat considerat de tip double. Variabila $x rmne de tip


ntreg, chiar dac PHP o trateaz ca o valoare de tip dublu pentru a
executa calculul.
$x = 1;
$y = $x+ 1 more;
echo $y; //Va afisa 2




Dac irul ncepe cu numr, valoarea irului este dat de valoarea


numeric respectiv; altfel, valoarea sa este zero.
Dac apare punct zecimal e double; altfel e integer.
20

Baze de date Lect.dr. P. Postolache

Constante i tipuri de variabile




Conversiile forate (manuale) de tip:


$x =
$y =
$z =
echo




1;
2.5;
$x + (integer) $y;
$z; //Va afisa 3

Doubleval() trateaz argumentul ca fiind de tip dublu.


Intval() - trateaz argumentul ca fiind de tip ntreg.
Strval() - trateaz argumentul ca fiind de tip ir.

Modificarea tipului unei variabile este posibil prin


utilizarea funciei settype():
$x = 1.5;
settype($x,integer);
echo $x; //Va afisa 1
21

Baze de date Lect.dr. P. Postolache

Instruciuni PHP - if
if ($numar > 10 ){
echo <BR>Numarul este mai mare dect 10.;
echo <BR>Deci, trebuie sa fie mai mare.;
}

O instruciune corelat att cu instruciunea if, ct i cu


instruciunea else, este instruciunea elseif. Cnd este
folosit corect, poate fi mai simplu de neles dect o
instruciune if imbricat.
if ($numar > 100 )
echo <BR>Acesta este
elseif ($numar > 10)
echo <BR>Acesta este
elseif ($numar > 1)
echo <BR>Acesta este
else
echo <BR>Acesta este
22

un numar foarte mare.;


un numar mare.;
un numar mic.;
un numar foarte mic.;
Baze de date Lect.dr. P. Postolache

Instruciuni PHP - switch




Pentru a putea lua o decizie n mai multe sensuri, putei


folosi instruciuni if , else sau elseif. Cnd dorii ca
programul dumneavoastr s aleag dintr-un set de
alternative (valori ntregi, reale, iruri) instruciunea
switch este o opiune mai convenabil:
switch($numar) {
case(1):
echo mic; break;
case(2):
echo mediu; break;
case(3):
echo mare; break;
default:
echo Acesta nu este un cod valabil;
}

23

Baze de date Lect.dr. P. Postolache

Instruciuni PHP - for


$suma = 0
for ($n=1; $n<=3; $n++)
$suma += $n;
echo <BR>Suma intregilor de la 1 la 3 este
$suma.;


Prima expresie este expresia de iniializare. A doua expresie


este expresia de test, evaluat pentru prima dat imediat dup
evaluarea expresiei de iniializare. Cea de-a treia expresie este
expresia pas. n general, aceasta modific una sau mai multe
variabile la care se face referire n expresia test.
for($n=0;$n<=$numar; $n++)
echo <BR><INPUT TYPE =\BUTTON\
VALUE=\$n\>\n;

24

Baze de date Lect.dr. P. Postolache

Instruciuni PHP while




Practic, instruciunile while i do while reprezint


versiuni manuale ale instruciunii for:
for ( ; $i<= 3; ) $suma += $i;
while ($i <= 3) $suma += $i;
$n = 1;
$suma = 0;
while ($n <= 3)
{
$suma += $n;
$n++;
}
echo <BR>Suma intregilor
de la 1 la 3 este $suma.;

25

$n = 1;
$suma = 0;
do {
$suma += $n;
$n++;
}
while ($n <= 3);
echo <BR>Suma intregilor
de la 1 la 3 este $suma.;

Baze de date Lect.dr. P. Postolache

Instruciuni PHP - funcii


$num_aleatoriu = rand(1, 12);


Cnd se produce o eroare n timpul execuiei unei


funcii, PHP genereaz mesaje de eroare. Pentru a
suprima mesajele de eroare care pot aprea n
timpul execuiei funciei f(), invocai funcia:
Y = @f(x);

Utilizarea fiierelor incluse:


require(fisierul.inc);

Cnd este ncrcat un script PHP care conine


require (sau require_once), coninutul fiierului
specificat este inserat n script, nlocuind
instruciunea require (sau require_once).
26

Baze de date Lect.dr. P. Postolache

Instruciuni PHP - funcii




Alt variant:
$x = 1;
include("fiier".$x.".inc");

Instruciunea require este prelucrat la ncrcarea


scriptului PHP asociat, naintea legri valorilor la
variabilele corespunztoare, n consecin, nu putei
folosi o expresie pentru a specifica numele fiierului
care urmeaz a fi inclus de ctre o instruciune
require.
Putei folosi instruciunea include, care este o
instruciune executabil ce determin evaluarea
scriptului PHP dintr-un fiier specificat.
27

Baze de date Lect.dr. P. Postolache

Instruciuni PHP - funcii


function calculeaza_arie($inaltime, $latime)
{
return $inaltime * $latime;
}




Numele funciilor nu sunt case senzitive.


Este posibil ca o funcie din PHP s se auto-apeleze.
Putem avea valori prestabilite pentru parametri.
function impozit_vanzari($cantitate , $rata =
0.0725)
{
return $suma * $rata;
}
$impozit = impozit_vanzari($cumparaturi,0.08);
$impozit = impozit_vanzari($cumparaturi);

28

Baze de date Lect.dr. P. Postolache

Instruciuni PHP - funcii




Variabilele din corpul funciilor pot fi:


locale,
globale (global $x) sau
statice (static $x)
function prin_valoare($x)
{
$x = 1;
}
function prin_referinta(&$x)
{
$x = 1;
}
$y = 0;
$y=0
prin_valoare($y);
$y = 0
$y=1
prin_valoare(&$y);
$y = 0
$y=1
prin_referinta($y);
29

Baze de date Lect.dr. P. Postolache

Instruciuni PHP - tablouri


$limbaje[10] = Perl;
$limbaje[20] = PHP;
$limbaje[] =Python; (21=>Python)


Sau:
$limbaje = array(10=>Perl, 20=>PHP, Python);

Exist instruciune pentru tabele nesecveniale:


$limbaje = array(10=>Perl, 20=>PHP, Python);
// parcurge iterativ tabloul
foreach ($limbaje as $index => $limbaj)
{
echo <BR>$index =>$limbaj;
}

foreach (array_expression as $key => $value)

30

Baze de date Lect.dr. P. Postolache

Instruciuni PHP - tablouri




n afar de modalitile de parcurgere iterativ a


tablourilor, PHP ofer funcii de traversare a tablourilor.




current() returneaz valoarea curent a tabloului.


next() i prev() modific pointerul intern al tabloului i se
pot folosi pentru a parcurge un tablou.
key() returneaz cheia asociat elementului curent:
$limbaje = array(10=>Perl, 20=>PHP);
$curent = current($limbaje);
$cheie = key($limbaje);

each() returneaz urmtoarea pereche cheie-valoare:


$fiecare = each($limbaje);
$cheie = each[key];
$valoare = each[value];

31

Baze de date Lect.dr. P. Postolache

S-ar putea să vă placă și