Sunteți pe pagina 1din 0

CAPITOLUL 3

LIMBAJUL SCRIPT PHP



PHP este un limbaj de nivel nalt asemntor cu limbajele C, Java, Perl. PHP este un
limbaj de script care este de obicei combinat cu limbajul HTML i conine multe biblioteci
care permit accesul rapid i personalizat la SGBD. Este un limbaj conceput pentru dezvoltarea
aplicaiilor Web.
n Exemplul 1.1 avem combinate tag-uri HTML cu limbajul PHP. Acest exemplu se
poate introduce ntr-un editor de text sau ntr-un mediu de programare destinat limbajului PHP.
Se salveaz fiierul cu extensia .php n directorul din care serverul de Web ruleaz paginile.
Pentru serverul Apache acest director se numete htdocs. n cazul setrilor implicite a serverului
de Web el se gsete n directorul unde a fost instalat serverul.

Exemplu 1.1
<html>
<head>
<title>Salut, lume</title>
</head>
<body>
<?php
echo "Salut, lume";
?>

</body>
</html>

Pentru a rula acest exemplu se pornete un browser de Internet i se introduce n cmpul
adres calea : http://localhost/ex1-1.php. (Cu aceast adres se presupune c serverul i browser-
ul se afl pe aceeai main). Acest script este rulat de ctre Web server i rezultatul este trimis
napoi i se afieaz n browser textul Salut, lume.
Script-ul PHP :
<?php
echo "Salut, lume";
?>

afieaz doar un mesaj : Salut lume. Din script-ul de mai sus deducem tag-urile de nceput i
sfrit ale limbajului PHP care sunt : <?php i ? >
Un script PHP este o serie de instruciuni terminate cu punct i virgula ( ; ). Exemplul de
mai sus are o singur instruciune: echo "Salut, lume";

Comentarii

Comentariile pot fi incluse n cod folosind urmtoarele stiluri:

// Comentariu pe o singura linie
#Alt stil de comentariu pe o singura linie
/* Comentariu
pe mai multe linii */

Variabile

n PHP se lucreaz foarte uor cu variabile deoarece nu trebuie declarate , acest mediu
determinnd automat tipul variabilelor. Numele unui variabile ncepe cu semnul $. n exemplul
urmtor sunt create variabile de tipul ntreg, real i tipul ir (string) :
$a = 10;
$b = 1.234;
$c = Caractere;

Conversia ntre tipurile d date se realizeaz automat n funcie de contextul n care se
gsete expresie. Spre exemplu :

$a = 2;
$b = 3;
$c = $a + $b; // tipul lui $c este ntreg i va conine
valoarea 5

$a = 2;
$b = 2 Un text;
$c = $a + $b; // tipul lui $c este ntreg i va conine
valoarea 4

$a = 1; // variabil de tipul ntreg
$b = 2.42; // variabil de tipul real
$c = $a + $b; // tipul lui $c este real

Delimitarea irurilor
n PHP se poate lucra cu iruri care sunt delimitate prin ghilimele sau prin apostrof.
PHP are posibilitatea de a include valoarea unei variabile ntr-un ir.

$a=2;
$b = Numr utilizatori: $a;
echo $b; // se va afia textul Numr utilizator : 2.

Dac n schimb se folosete apostroful PHP nu va include valoarea variabile iar irul este
tratat ca atare :

$a=2;
$b = Numr utilizatori: $a;
echo $b; // se va afia textul Numr utilizator : $a.

Dac se dorete s se afieze caracterele : $, \, delimitate de un ir cu ghilimele atunci
trebuie folosit caracterul \ naintea acestor caractere :

$a= Text cu caracterul dolar: \$;

n schimb irul delimitat de apostrof este tratat diferit i nu este nevoie de caracterul \ :

$a=

Text cu caracterul $ \ ;
Afiarea datelor cu instruciunea echo

Instruciunea echo este utilizat pentru a afia orice tip de date.

echo " baze de date";
echo 123;
echo $numevariabila;

Tipuri de date
PHP are 6 tipuri de date : boolean, float, integer, string, array i object.

//variabile de tipul boolean
$var1=true;
$var1=false;

//variabile de tipul real
$var1=1.25;
$var1=3.1e2; // $var1= 310
$var1=1.1e-2; // $var1= 0.011

//variabile de tipul ntreg
$var1=12345;

//variabile de tipul ir
$var1=Baze de date relaionale;

Tipurile de date array i object sunt tipuri de date complexe i vor fi studiate n detaliu n
paragrafele urmtoare.

Constante

Constantele asociaz un nume cu o valoare simpl . Constantele se definesc dup cum urmeaz :

define (pi, 3.1415 );
echo pi;

Constantele nu sunt precedate de semnul $ i nu pot fi schimbate odat ce au fost declarate.

Atribuirea variabilelor
Atribuirea valorilor unei variabile se face cu operatorul = i se folosete ca n majoritatea
limbajelor de nivel nalt.

// Adauga 1 la $var
$var = $var + 1;
$var += 1;
$var++;

// Scade valoarea 1 din $var
$var = $var - 1;
$var -= 1;
$var--;

// nmulirea cu numrul 2
$var = $var * 2;
$var *= 2;

// mprire prin 2
$var = $var / 2;
$var /= 2;

Atribuirea de iruri:

// Atribuirea unui ir la o variabil
$var = " text de text";

// concatenarea a doua siruri
$var = "text" . " de text";

// Adaugarea unui sir la alt sir
$var = "text";
$var = $var . " de text";

// varianta simplificat de adugarea unui sir la alt sir
$var .= " test";

Conversia tipurilor de date
Variabilele n PHP pot fi convertite la un alt tip prin plasarea de paranteze n faa
variabilele cu noul tip de dat.

$a=1;
$b=(string) $a;
echo gettype(a);
echo gettype(b);

Codul va afia:
integer string

n acest mod se poate modifica tipul variabilelor la orice tip de dat.
Cu urmtoarele funcii se poate fora ca valoarea unei variabil s fie convertit la un alt
tip .Variabila nu i va schimba tipul doar valoarea ei va fi tratat ca un alt tip de dat :

string strval(mixed variable)
integer intval(mixed variable)
float floatval(mixed variable)

$a = 100;
$b = ( floatval( $a ) / 10);
De asemenea limbajul PHP mai dispune de o funcie settype (mixed variable,
string type) care explicit seteaz tipul unei variabile. Funcia are 2 argumente primul este
variabila ce trebuie convertit iar al doilea argument este un sir care specific tipul (array,
boolean, float, integer, object, sau string). Avantajul folosirii acestei funcii i nu a convertirii
prin parantez este c funcia ntoarce valoare FALSE dac conversia nu reuete.

$a = 1;
$b = settype($a,integer);
Testarea variabilelor
Testarea variabilelor este necesar deoarece simpla examinarea a numelui variabilei nu
poate s spun dac variabil conine o valoare ce tip are valoarea sau daca a fost mcar
iniializat. Pentru a afla aceste informaii PHP dispune de funcii de testare a tipului.

boolean isset(mixed var)

Funcia testeaz dac o variabil este iniializat cu vreo valoarea inclusiv irul nul. Funcia
returneaz false daca variabila nu a fost iniializat.


boolean empty(mixed var)

Funcia returenaz true dac o variabil nu este setat , conine un ir gol sau conine valoarea
zero.

n Tabelul 1.1 se observ modul de funcionare a celor dou funcii:

Tabel 1.1 Diferena dintre funciile isset i empty
Valorile variabilei $var isset($var) empty($var)
$var = null; false true
$var = 0; true true
$var = true true false
$var = false true true
$var = "0"; true true
$var = ""; true true
$var = "text"; true false

PHP dispune de funcii care pot determina tipul variabilelor. Aceste sunt :
boolean is_int(mixed var)
boolean is_float(mixed var)
boolean is_bool(mixed var)
boolean is_string(mixed var)
boolean is_array(mixed var)
boolean is_object(mixed var)

Toate aceste funcii returneaz true sau false n funcie de tipul variabilei i funcia
folosit. De exemplu :

$test = 17.3;
echo is_float($test); // afieaz 1 adic adevrat

Instruciuni de control
Instruciunea if
if (conditie)
{
Instruciuni care se executa daca condiia este adevrata
}
else
{
Instruciuni care se executa daca condiia este falsa
}
Instruciunea if permite controlul execuiei unui bloc de instruciuni n funcie de o condiie.
Dac exist mai multe instruciuni ele trebuie incluse n acolade. Din instruciunea if blocul
else poate s lipseasc. n PHP valoarea zero este echivalent cu valoarea logica FALSE.
Pentru valoarea logica TRUE expresie trebuie sa aib o valoare diferit de zero.
Condiiile sunt expresii care sunt evaluate la valoarea de adevrat sau fals. Pentru a
realiz comparaii PPH ofer operatori de comparare. (Tabelul 1.1)

Tabelul 1.1 Operatori de comparaie
Operator Semnificaie
==
Determin dac dou valori sunt egale
===
Determin daca valorile sunt egale si daca au acelai tip
>
Mai mare
>=
Mai mare sau egal
<
Mai mic
<=
Mai mic sau egal
!=, <>
Diferit
!==
Diferit att valorile cat si tipurile
Instruciunea switch
Instruciunea switch este un alt mod de a schimba execuia unui program prin evaluarea unei
expresii din punct de vedere logic. . Cu ajutorul instruciunii if i else if se poate controla fluxul
a mai multe blocuri dar folosind tot attea expresii. Instruciunea switch folosete o singura
expresie i in funcie de evaluarea acesteia se execut diferite blocuri de instruciuni. n cazul
instruciunii if expresia era evaluata ca adevrat sau fals n schimb la switch expresia este
evaluat cu orice valoare.:

switch (expresie) {
case caz1:
// instruciuni care se execut n cazul in care expresia are
valoarea caz1
break;
case caz2:
// instruciuni care se execut n cazul in care expresia are
valoarea caz1
break;
default:
// instruciuni care se execut n cazul in care expresia nu a
luat valoare nici unui caz
}

Expresia utilizat n instruciunea switch este de obicei doar o variabil. Este necesar
introducerea instruciuni break dup fiecare caz deoarece fr aceasta programul va continua la
cazul urmtor pn la instruciunea default.

$meniu= pizza;
switch ($meniu)
{
case pizza:
echo masa de pranz : o pizza
break;
case spaghete:
echo masa de pranz : spaghete
break;
default :
echo masa de pranz: ciorba de burta cu
ardei iute si smantana: 3 euro
}
Instruciuni repetitive
Instruciunile de buclare sunt folosite pentru a realiza repetarea blocurilor de instruciuni.
O bucl se execut pn cnd o condiie este ndeplinit.

Instruciunea while
Instruciunea while va permite executarea blocului de instruciuni att timp cat expresie
este evaluat la valoare true. Fiecare execuie a instruciunilor se numete iteraie. n interiorul
buclei while de obicei se schimb ceva pentru a modifica expresia din instruciunea while,
altfel bucla va rula la infinit.

while (expresie) {
// instruciuni
}
Mai jos avem o bucl care calculeaz tabla nmulirii cu 7.

$num=1;
while (num < =10)
{
echo $num ori 7 egal . ($num *7). <br>;
$num++;
}

Instruciunea do .. while
Instruciunea do..while este asemntoare cu instruciunea while. Diferena const n
aceea ca blocul de instruciuni care se repet este executat naintea testului expresiei.

do {
// instruciuni
} while (expresie);

Acest tip de bucl este util atunci cnd este nevoie s se execute blocul de instruciuni cel puin
o singur dat chiar dac expresia este evaluat la valoarea false. Cu ate cuvinte blocul de
instruciuni este executat cel puin o singur dat.

do
{
echo $num la puterea 2 egal . ($num *$num). <br>;
$num++;
}
while (num < =30);

Instruciunea for
Instruciunea for este o form compact i mai sigur a instruciunii while. n exemplul
de la instruciunea while am iniializat o variabil nainte blocului de instruciuni am modificat
aceast variabil n interiorul buclei apoi am testat aceast variabil. Instruciunea for permite s
obinem acelai efect cu al instruciunii while dar printr-o singur linie de cod:

for (expresie iniializare; expresie testare;expresie modificare)
{
instructiuni
}

De obicei prima expresie iniializeaz o variabil , a doua expresie testeaz condiie de buclare i
a treia expresie incrementeaz variabila iniializat la prima expresie.

for ($num=1; num < =30; $num++)
{
echo $num la puterea 2 egal . ($num *$num). <br>;

}
Funcii
Scopul funciilor este acela de a organiza un program devenind astfel mai uor de citit si
reutilizat. . O funcie accept valori numii parametrii de intrare proceseaz aceste date apoi
realizeaz o aciune i returenaz o valoare.
Limbajul PHP dispune de o gam foarte larg de funcii n special pentru lucrul cu
mediul Web .
O funcie se definete cu urmtoarea sintax :

function nume_functie ($argu1, $arg2)
{
//codul functiei
}

Spre deosebire de numele variabilelor, la numele funciilor nu se face distincie intre
literele mari i literele mici. Deci o funcie cu numele print poate fi folosit i cu numele de
Print i PRINT.
O funcie returneaz o valoare utiliznd cuvntul chei return urmat de o variabil.
Instruciunea return oprete execuia funciei i trimite valoarea napoi la program de unde a
fost apelat.
O variabil creat n interiorul funciei este accesibil doar n cadrul acelei funcii. n
schimb o variabil creat global n afara funciei nu poate fi accesat implicit de ctre aceast
funcie . Pentru a accesa totui variabile globale n interiorul funciei trebuie folosit cuvntul
chei global urmat de numele variabilelor globale.

$nloc=10;
function suma ()
{
global $nloc;
echo $nloc;
}
suma ();

PHP are posibilitatea de a crea valori implicite pentru argumente realiznd astfel funcii cu
argumente opionale.:

function suma ($a1, $a2=2)
{
echo $a1, $a2;
}
suma (1,4);
suma (3);

Argumentele funciei sunt copii a valorilor care se transmit . Folosind acest argument n
interiorul funciei i modificndu-l nu are nici un efect n afara funciei. n PHP argumentele sunt
transmise implicit prin valoare. De asemenea exist posibilitatea de a transmite argumentele unei
funcii prin referin plasnd semnul & n faa argumentului ca n exemplul de mai jos :

function bax ($loc, &$ref)
{
$loc =10;
$ref=20
}
$a=1;$b=2;
bax($a, $b);
echo $a, $b;

Atunci cnd transmitem parametrii prin referin coninutul variabilei $b este accesat prin
variabila $ref din lista de parametrii a funciei deci nu este folosit o copie a variabilei ca n
cazul variabilei $a. Orice schimbare a valori variabilei $ref va modifica coninutul variabilei $b
din programul principal.

Tablouri
Dup cum se ti variabilele sunt folosite pentru a stoca valori. Variabilele de tipuri
simple de date nu pot stoca de o singur valoare . n schimb variabilele de tip tablou sunt
variabile care permit stocarea a mai multe valori simultan sub acelai nume.
Tablourile sunt indexate adic fiecare element din tablou este alctuit dintr-o cheie i
dintr-o valoare . Cheie reprezint poziia elementului n tablou care ncepe cu valoarea zero.
Un tablou se creeaz cu ajutorul funciei array() sau cu operatorul [ ] .
n exemplul urmtor se creeaz un tablou cu funcia array():

$persona = array ( nume, prenume, adresa);
Acelai tablou se poate crea i astfel :

$persona[] = nume;
$persona[] = prenume;
$persona[] = adresa;
Tablouri asociative
PHP permite pe lng indexarea tabelelor prin numere i indexarea tabelelor prin iruri.
Tablourile asociative folosesc pentru chei de fapt un nume. D exemplu:

$persoana=array(
nume=>Harley,
prenume=>Royce,
varsta => 30
);
Cele 3 chei din tablou sunt nume, prenume, varsta iar valorile asociate acestor chei sunt Harley,
Royce i 30 . Pentru a accesa o anumit valoare se va folosi cheia asociat acestei valori:

echo $persoana[nume];

Atunci cnd valoare unui tablou este folosit n interiorul unui ir este nevoie ca aceea
valoare s fie inclus ntre acolade :

echo Varsta lui {$persoana[nume]} este {$persoana[varsta]}

De asemenea se poate folosi operatorul de indexare pentru a aduga elemente n tabloul
asociativ.

$persoana[adresa]=Str. Pacii Nr23;


Pentru a parcurge un tablou asociativ se poate folosi structura urmtoare :

foreach ($numetablou as $cheie=>$valoare)
{
instructiuni ;
}
unde :
$numetablou reprezint variabila care conine tabloul asociativ
$cheie reprezint variabila care conine valoarea cheii tabloului
$valoare reprezint variabila care stocheaz valoare din cheie


foreach ($persoana as $date=>$val)
{
echo $date : $val;
}

Tablouri multidimensionale
Tablourile multidimensionale se declar astfel:


<?php

$a=array(
array (1,2,3),
array(2,3)
) ;

?>

Pentru a afia rapid acest tablou avem urmtorul program :

echo "<pre>";
print_r($a);
echo "</pre>";

echo $a[0][0];


De asemene se pot crea i tablouri multidimensionale asociative:

$vehicul=array(
array ( marca=>Audi, culoare=>galben),
array(marca=>BMW, culoare=>argintiu)
);

echo $vehicul[0][marca];

sau

$vehicul=array(
Audi => array ( model=>TT, culoare=>galben),
Mercedes => array(model=>SLK,culoare=>albastru)
);

echo $vehicul[Mercedes][model];

Pentru a parcurge un tablou multidimensional asociativ putem folosi urmtoarea structur :


foreach ( $vehicul as $mrc)
{
foreach ( $mrc as $atr => $val )
{
echo $atr: $val \n <br>;
}
}


n prima bucl lipsete termenul pentru cheie folosind doar termenul pentru valoare:
$mrc. Variabila $mrc este un tablou asociativ. Pentru a parcurge acest tablou asociativ folosim
structura din bucla interioar.

Funcii pentru lucrul cu tablouri
count ($nume_array) - determin numrul de elemente din tablou.

$birou=array(pix, stilou, creion, guma);
echo count($birou);

Funcia va ntoarce valoarea 4.

sort ($nume_array) sorteaz un tablou care are ca i chei numere n ordine
cresctoare.

$echipe[0]=Jiul Petrosani;
$echipe[1]=Poli Timisoara;
$echipe[2]=CFR Cluj;

$sort($s1);

Dup execuia funciei tabloul va avea structura:

$echipe[0]=CFR Cluj;
$echipe[1]=Jiul Petrosani;
$echipe[2]=Poli Timisoara;


asort ($nume_array) sorteaz un tablou care are ca i chei cuvinte n ordine
cresctoare.

$judete[P]=Deva;
$judete[C]=Sibiu;
$judete[Z]=Bucuresti;
$asort($judete);

Dup execuia funciei tabloul va avea structura:

$judete[Z]=Bucuresti;
$judete[P]=Deva;
$judete[C]=Sibiu;

rsort ($nume_array) sortare dup valoare n ordine descresctoare.
arsort ($nume_array) sortare dup valoare n ordine descresctoare. Cheile sunt
cuvinte.

ksort ($nume_array) sortare dup cheie n ordine cresctoare.
krsort ($nume_array) sortare dup cheie n ordine descresctoare.
array_push ($tab , elem1, elem2, ...) adaug unul sa mai multe
elemente la sfritul unui ir.
array_pop ($tab) elimin i returneaz ultimul element dintr-un ir
array_unshift ($tab , elem1, elem2, ...) adaug unul sa mai multe
elemente la nceputul unui ir.
array_shift ($tab) elimin i returneaz primul element dintr-un ir
array_merge ($tab1,$tab2) combin dou sau mai multe iruri i returneaz
rezultatul .
array_flip ($tab) interschimb cheile cu valorile unui tablou . Se folosete cu
tablouri asociative
array_keys ($tab) returneaz un tablou care conine toate cheile cu nume dintr-
un tablou dat
array_values ($tab) returneaz un tablou care conine toate valorile dintr-un
tablou dat
array_rand ($tab) returneaz un element aleatoriu din tabel
shuffle($tab) amestec elementele unui tablou
array_count_values($tab) funcia returneaz un tablou asociativ . Cheile
tabloului vor fi valorile unice din tablou de intrare. Valorile tabloului rezultat vor fi
numere care reprezint numrul de apariii al valorilor din tabloul de intrare.

$in = array( a, b, a, a, b);
$res= array_count_values($in);

Tabloul $res va conine : a=> 3 , b=>2

Programarea orientat pe obiecte n PHP

Programare orientat pe obiecte (POO) ofer un alt mod de a scrie programe. n POO
elementele unui program sunt obiectele. Pentru a identifica obiectele este nevoie de o analiz a
problemei de implementat. Obiectele reprezint entiti alctuite din proprieti i din funcii care
opereaz asupra proprietilor. Obiectele din POO tind s modeleze obiecte din lumea real. De
exemplu o main poate fi un obiect cu urmtoarele proprieti : culoare, model, motor. De
asemenea maina poate ave urmtoarele funcii: schimbare automat viteze , geamuri electrice,
acceleraie turbo, etc.
Pentru a crea obiecte este nevoie de clase. O clas a unui obiect reprezint un ablon al
acelui obiect. Cu ajutorul clasei se definesc proprietile i se implementeaz funciile care
reprezint caracteristicile generale ale obiectelor. De exemplu obiectul automobil are o culoare ,
o marc etc. . Atunci cnd se creeaz un obiect dintr-o clas se particularizeaz proprietile
obiectului cum ar fi culoarea este roie i marca Porsche. n acest fel se poate proceda pentru o
obine o ntreag gam de obiecte care deriv din ablonul de obiecte reprezentat de clas.
Este necesar un timp mai mare fa de programarea procedural pentru a identifica
obiectele cu proprietile i funciile lor. Motivul pentru care sunt folosite obiectele l reprezint
capacitatea de reutilizare a claselor.
Crearea claselor :
O clas este un ablon care este folosit pentru a crea obiecte. ntr-o clas se definesc
proprietile obiectelor i lucrurile care se pot realiza cu aceste obiecte



class nume_clas
{
definire proprieti (atribute)
definire funcii (metode)
}
Definirea proprietilor
Variabilele declarate n interiorul unei clase sunt denumite proprieti.

class vehicul
{
var $model;
var $culoare;
var $putere=150;
// definitii funcii (metode)
}

Proprietile obiectelor sunt precedate de cuvntul var. De asemenea proprietile pot fi
iniializate cu o valoare atunci cnd sunt declarate.
Definirea metodelor
Metodele reprezint ce-a ce poate s fac un obiect i sunt scrie n interiorul clasei ca nite
funcii.

class Persoana
{
var $nume;
function AfisHobby()
{
echo Backstreet Boys
}

}

Folosirea atributului this
This este o variabila speciala care este declarat implicit ntr-o clas i este folosit doar
n interiorul acelei clase. Cu ajutorul acestui membru al clasei sunt accesate atributele clasei din
interiorul funciilor care aparin acestei clase. Acest atribut se folosete n felul urmtor:

this->nume_variabila

Exemplu:
class Electro
{
var $integrat;
function afisNume()
{
this->integrat=8253 Timer ;
echo this->integrat;
}
}

Pentru a accesa variabila $integrat declarata n afara funciei se folosete construcia
this->integrat.

Utilizarea constructorului
Constructorul este o funcie special care se execut automat atunci cnd este creat un
obiect. Constructorul are acelai nume cu numele clasei i cu ajutorul lui se poate face
iniializarea membrilor clasei atunci cnd obiectul este creat. n PHP exist doar un singur
constructor care poate s aib parametri dar el nu va ntoarce nici o valoare.

Exemplu :

class Procesor
{
var $viteza;
var $tip;
function Procesor($v , $t) // constructor
{
$this->viteza=$v;
$this->tip=$t;
}

function afisare ()
{
echo $this->viteza;
echo $this->tip;
}
}

$proc = new Procesor("3500", "AMD");
$proc->afisare();

Motenirea obiectelor
Motenire obiectelor se refer la motenirea funcionalitii unei clase de ctre o alt
clas. n exemplul de mai jos avem clasa Persoana care reprezint clasa de baz. Aceasta are un
constructor, i metoda Afis. Clasa Angajat este o clas derivata din clasa Persoana de unde
motenete constructorul , funcia i membrul de date al clasei de baz i le poate folosi ca atare.
n plus clasa poate s i adauge alte funcii extinzndu-i astfel funcionalitatea cu ajutorul clasei
de baz.

class Persona {

var $nume = Gicu;

function Persoana($n)
{
$this->nume = $n;
}
function Afis()
{
echo Numele este .$this->name;
}
}

class Angajat extends Persoana {

function Poc()
{
echo salariat;
}

}

$object1 = new Angajat(Gigel);
$object1 -> Afis();

Lucrul cu iruri
Pentru aplicaiile Web lucrul cu iruri este foarte important. Limbajul PHP dispune de
peste 70 de funcii

Funcia strlen()

int strlen(string nume_sir)

Determin lungimea unui ir .

Exemplu:
echo strlen(text);

Se va afia valoarea 4.

Funcia strcmp()

int strcmp(string sir1, string sir2)

Compar sir1 cu ir2. Daca primul ir este mai mare dect al doilea ir funcia va returna
o valoarea ntreaga mai mare dect 0 n caz contrar o valoarea mai mic dect zero. Dac cele
dou iruri sunt egale returneaz valoarea zero.

Funcia str_replace()

string str_replace(string sir1, string sir2, string sir3)

Funcia nlocuiete irul sir1 cu irul sir2 din sirul sir3.

$sir=str_replace ( sisteme de ,sisteme de gestiune ,
sisteme de baze de date);
echo $sir ;

Se va afia irul : Sisteme de gestiune baze de date

Funcia substr _replace()

string substr_replace(string str1, string str2, int start,
[, int length])

Aceasta funcie nlocuiete n irul ir1 pe irul sir2 ncepnd din poziia dat de
parametrul 3 start. Al patrulea parametru care este opional determin cte caractere se vor
nlocui n irul ir1. Daca valoarea este negativ se va ncepe de la sfritul irului.

Exemplu :

Funcia strip_tags()

string strip_tags(string sir1 [, string sir2])

Elimin tag-urile HTML i PHP din irul sir1 cu excepia celor din irul ir2.

$str1=strip_tags (un <b>text</b> cu <i>taguri</i> <img scr=
http://www.quick.com> , <b><p>);

echo $str1;

Se va afia irul : un text cu taguri

Funcia substr()

string substr(string str, int start [, int lungime])

Returneaz o poriune din irul str ncepnd de la poziia dat de parametrul al doilea
start i avnd lungimea dat de parametrul al treilea lungime.

Funcia strtolower()

string strtolower(string str)

Aceast funcie transform irul str ntr-un ir cu toate literele mici.

Funcia strtoupper()

string strtoupper(string str)

Aceast funcie transform irul str ntr-un ir cu toate literele mari.

Funcia ucfirst()

string ucfirst(string str)

Transform prima liter din irul str n liter mare.

Funcia trim()

string trim (string str)

Elimin spaiile de la nceputul i sfritul irului str.

Funcia implode()

string implode(string str_separator, array nume_tablou)

Transform un tablou ntr-un ir. Elementele tabloului sunt desprite de ctre caracterele
date de irul str_separator.

Exemplu :

$a=array(1,7,8,9);
$sir= implode (/,$a);
echo $sir;

Se va afia irul 1/7/8/9


Funcia explode()

array explode(string str_separator, string str [, int
limit])

Transform un ir ntr-un tablou. Parametrul al doilea str reprezint irul de transformat
ntr-un tablou. irul str_separator va conine caracterele care delimiteaz elementele din
irul str. Iar al treilea element este o valoare care va limita numrul de elemente care vor forma
tabloul.

Exemplu :

$str=1,2,3,4,5,6,7;
$a=explode( ,, str, 3 );

Tabloul $a va avea elementele: $a[0]=1 , $a[1]=2 , $a[2]=3 .






Utilizarea PHP la aplicaii Web
Una din cele mai puternice faciliti ale limbajului PHP este abilitatea acestuia de a
interaciona uor cu bazele de date. Limbajul dispune de funcii de lucrul cu mediul MySql prin
trimiterea de ctre comenzi ale limbajului SQL ctre baza de date.
Aceste funcii se conecteaz la un server MySql , se selecteaz o baz de date i se trimit
comenzi SQL .Funciile PHP de lucrul cu baze de date MySql au urmtorul format general :

mysql_numefunctie(param1,param2,...);
Conectarea la baza de date
Pentru a stoca sau extrage date este necesar conectarea n prealabil la baza de date .
Baza de date poate fi pe acelai calculator sau poate fi pe un alt calculator conectat ntr-o reea.
Pentru a realiza o conexiune este nevoie de numele i locaia bazei de date.
Locaia bazei de date este dat de ctre numele calculatorului unde se afl baza de date.
Serverul MySql are nevoie de un nume de utilizator i o parol care sunt create de ctre
administratorul bazei de date. Acest nume i aceast parol este diferit de numele utilizatorului
care folosete sistemul, acestea fiind specifice doar serverului de baz de date.
Pentru a deschide conexiunea cu baza de date se folosete funcia :

$resultat=mysql_connect( locatie,nume,parola)

De exemplu pentru a ne conecta la serverul MySql de pe computerul local cu nume de utilizator
autoritar i fr parol

$result = mysql_connect(localhost ,autoritar ,)
or die (Esuare conexiune cu serverul.);

Dac funcia nu are succes conexiunea nu este fcut i se execut funcia die. Aceast funcie
ntrerupe programul i trimite un mesaj la browser.
O conexiune rmne deschis pn la terminarea programului sau se poate nchide cu
funcia mysql_close astfel :

mysql_close($result);
Selectarea bazei de date
Dup ce s-a realizat conexiunea la serverul MySql trebuie s alegem o baz de date cu
care s lucrm. Pentru selectarea bazei de date se folosete funcia mysql_select_db astfel :

$db = mysql_select_db(numebaza , $numeconexiune)
or die ( mesaj de eroare);

De exemplu

$db = mysql_select_db(agenda ,$result)
or die (esuare selectare baza de date.);

Selecteaz baza de date cu numele agenda . Variabila $result este o valoare ntreag
provenit de la funcia mysql_connect. Aceast valoare este opional deoarece PHP poate
s foloseasc ultima conexiune creat la o baz de date.


Rularea de comenzi SQL
Dup ce s-a stabilit o conexiune i s-a selectat o baza de date utilizatorul poate s
stocheze, s tearg, s actualizeze i s preia date. Pentru a interaciona cu baza de date se scriu
comenzi n limbajul SQL i se trmit serverului MySQL cu ajutorul funciei mysql_query astfel :

$query = SELECT * FROM Pet;
$result = mysql_query($query)
or die (eroare la executia instructiuni.);

Variabila $result conine informaii primite prin rularea comenzii SQL din irul $query.
Dac comanda SQL nu are ca scop returnarea de date ca de exemplu instruciunea INSERT sau
UPDATE atunci variabila $result va conine doar valorile TRUE sau FALSE n funcie de
succesul comenzi.
n schimb dac s-a cerut prin comenzi SQL returnarea de date de la serverul MySQL,
variabila $result va conine un identificator de rezultat care indic locaia datelor deci nu conine
practice date.
Atunci cnd se lucreaz cu iruri care conin instruciuni SQL apare confuzia de
folosirea a ghilimelelor att pentru definirea irului ct i n comenzile SQL ca n exemplul de
mai jos care nu este corect:

$query =SELECT Nume FROM Persoana WHERE prenume=Jack Black ;

Varianta corect unde se observ folosirea apostrofului este:

$query =SELECT Nume FROM Persoana WHERE prenume=Jack Black ;

La fel i n cazul urmtor :

$query =SELECT Nume FROM Persoana WHERE Prenume=$prenume ;

Dup ce s-a obinut un resultat de la funcia mysql_query se va folosi funcia mysql_fetch_row
care preia datele dintr-o locaie temporar i le stocheaz n variabile din PHP .
Forma general a instruciunii este:

$row = mysql_fetch_array($result, $tiptablou);

Aceast funcie preia datele din locaia dat de variabila $result i le va stoca in tabloul
cu numele $row.
Parametrul $tiptablou reprezint tipul de tablou returnat i poate s aib valorile :
MYSQL_NUM tablou cu numere pentru chei de acces a tabloului
MYSQL_ASSOC tablou asociativ cu valori de nume ale coloanelor pentru
cheile tabloului
MYSQL_BOTH tablou cu coloane duble att indexate cu numere ct i cu
iruri. Aceast valoare este i valoarea implicit.

Exemplu:

$pers = Jonny; //
$query = SELECT nume FROM Persoana
WHERE membru=Jonny GoodBoy;
$result = mysql_query($query)
or die (Eroare de comanda SQL.);
$row = mysql_fetch_array($result,MYSQL_ASSOC);

if ( $pers == $row[nume] )
{
echo Login acceptat<br>;
}
else
{
echo Persona neidentifcat <br>;
}


Dac informaie care se dorete conine mai multe linii atunci se poate folosi urmtoarea
structur :

$query=SELECT * FROM nume_tablou;

$result=mysql_query($query);

while ( $row = mysql_fetch_array($result, MYSQL_ASSOC))
{
foreach($row as $key=>$value)
{
echo $key: $value;
}

}

De asemenea se poate folosi i urmtoarea structur care determin determin numrul
de linii cu ajutorul funciei mysql_num_rows :

$n = mysql_num_rows($result);
for ($i=0;$i<$n;$i++)
{
$row = mysql_fetch_array($result))
foreach($row as $key=>$value)
{
echo $key: $value;
}
}
Folosirea formularelor HTML
PHP a fost conceput pentru a realiza aplicaii pentru Internet i n special pentru
realizarea de pagini Web dinamice. Paginile Web statice sunt acele pagini care nu permit
interaciunea cu utilizatorul. n schimb paginile Web dinamice permit ca utilizatorul s vad
diferite pagini n funcie de informaia care o scriu n pagina. De exemplu un utilizator poate s
introduc numele i parola intr-o pagin Web i n funcie de acestea s apar pagini Web
corespunztoare informaiei introduse. De asemenea utilizatorul poate s aleag produse dintr-o
catalog on-line i s aib acces doar la produsele care le dorete.
O pagin Web dinamic preia informaii de la utilizator cu ajutorul formularelor HTML.
Informaia introdus n formular este apoi procesat de ctre un script PHP.

Exemplu de script care afieaz un formular HTML:

<?php
echo <form action=actiune.php method=POST>\n
<input type=text name=nume>\n
<input type=submit value=Submit Nume>\n
</form>\n;
?>

La rularea acestui script se va afia urmtorul formular :



Utilizatorul introduce datele necesare n formular apoi apas butonul Submit. Dup
apsare butonului datele sunt trimise la un script. n tag-ul form avem atributul action care
indic calea i numele programului unde vor fi trimise datele introduse n formular.
Datele sunt stocate ntr-un tablou asociativ global creat
de PHP. PHP creeaz urmtoarele tablouri asociative :

$ _POST conine toate datele din cmpurile formularului daca sa folosit metoda
de transmitere a parametrilor POST
$ _GET- conine toate datele din cmpurile formularului daca sa folosit metoda
de transmitere a parametrilor GET

Fiecare index al acestui tablou reprezint numele unui cmp de intrare din formular. Deci
in script-ul cu numele actiune.php se poate folosi o variabila de genul

$_POST[nume]

Tabloul folosit se numete $_POST deoarece am specificat POST ca valoare a
atributului method din tag-ul form . Iar ca index am folosit valoarea nume deoarece la tag-ul
input pentru atributul name avem valoarea nume.

Formulare HTML

Tag-ul FORM
Creeaz zona formularului n pagin i conine cmpurile pentru datele de intrare

<FORM action=formproces method=post>

<!controale de intrare>

</FORM>

Se pot trmite datele cu ajutorul a dou metode:POST i GET.
Cu ajutorul metodei POST datele sunt trimise separate de adresa URL a paginii care conine
formularul.
Cu metoda GET se preiau datele din formular i sunt adugate la adresa URL din cmpul action
de la tag-ul FORM.

http://localhost/formproces.php?camp11=valoarea&camp2=valoare

Tag-ul INPUT
Acest tag poate fi folosit n mai multe feluri oferind diverse tipuri de informaie :

text cu urmtoarele attribute :
- size- determin lungimea casetei de text care apare in browser
- maxlength limiteaz numrul de caractere care pot fi introduse n caseta de text
- value un text care va apra ca implicit n caseta de text
password identic cu campul text cu excepia c n locul textului introdus n caseta cu text
este afiat caracterul *
hidden acest caset nu se afieaz pe ecran n schimb poate fi folosit la stocarea de date
i trmiterea lor de la o pagin la alta
submit plaseaz un buton folosit la transmiterea datelor
reset plaseaz un buton folosit la resetarea datelor din formular i aducerea formularului
la forma care o avea cnd a fost rulat.
checkbox afieaz o caset de validare . Dac cuvntul checked apare atunci caseta
este validat implicit
radio afieaz o caset de opiune. Butoanele radio cu atributul name cu acelai nume
aparin aceluiai grup de butoane de opiune.

Exemplu :

<h2>Introduceti date private si personale. Va rugam</h2>
<form>
<input type="text" size="25" maxlength="15" name="nume"
value="Numele dvstra"><br>
<input type="password" size="25" maxlength="15" name="parola"
value=""><br>
<input type="hidden" value="12.01.2002">

<b>Care este masina dumneavoastra preferata ?</b><br>
<input type="checkbox" name="vagon" >Aston Martin <br>
<input type="checkbox" name="vagon" > Ferrari F50 GT <br>
<input type="checkbox" name="vagon" > Dodge Viper <br>

<b>Care este filmul dumneavoastra preferat ?</b><br>
<input type="radio" name="kino" checked>Stapanul Inelului I<br>
<input type="radio" name="kino" > Stapanul Inelului II<br>
<input type="radio" name="kino" > Stapanul Inelului III<br>
<input type="submit" name="submit" value="submit">
<input type="Reset">
</form>




Tag-ul select
Elementul select creeaz o caset combinat .
Exemplu

<select name=culori>
<option value=1>rosu</option>
<option value=2>albastru</option>
<option value=3>verde</option>
<option value=4>galben</option>
<option value=5>portocaliu</option>
</select>

Dac se folosete i atributul multiple se va afia n schimb o caset cu list

<select name=culori multiple size=3>
<option value=1>rosu</option>
<option value=2>albastru</option>
<option value=3>verde</option>
<option value=4>galben</option>
<option value=5>portocaliu</option>
</select>




Editoare PHP
Exist o varietate de programe pentru realizarea de programe n PHP. Unele au opiuni
mai bune dect altele , iar anumite editoare au opiuni particulare unice care confer avantaje n
programarea Web.
n continuare se prezint o list de utilitare care pot fi folosite la programarea paginilor
Web :

PHPEdit: www.phpedit.net gratuit
Dreamweaver MX 2004: www.macromedia.com - comercial
PhpED: www.nusphere.com - comercial
SourceEdit: www.sourceedit.com - comercial
HTML-Kit: www.chami.com/html-kit/ - gratuit
UltraEdit-32: www.ultraedit.com - comercial
Webuilder :http://www.blumentals.net/webuilder/ comercial

Aceste medii ofer urmtoarele faciliti

Colorarea sintaxei limbajului
Acces FTP pentru ncrcarea pe Internet a paginii Web
Completare automata PHP pentru productivitatea n scrierea programului
Interfa vizual (doar Dreamweaver MX i HTML Kit)


Resurse PHP
http://www.php.net site-ul oficial al programului PHP
unde se poate obine programul gratuit, documentaie i
suport.
http://www.zend.com site unde se pot gsi : scripturi,
manual pas cu pas, aplicaii, tiri
http://www.phpbuilder.com articole despre aplicaii Web
http://sourceforge.net/projects/phpmyadmin/ - aici se
gsete un instrument de administrare a serverului MySql
scris n PHP
http://www.phpclasses.org diverse clase PHP
http://weberdev.com/ - articole manuale, script-uri

Resurse MySQL
www.mysql.com

Folosirea utilitarului PHPEdit
phpEditorIDE este un mediu de programre pentru limbajele : PHP, HTML, XML, CSS,
JScript i VBScript.


Configurarea aplicaiei pentru lucrul cu PHP
De la meniul Editor->Option se alege tab-ul Servers. Va aprea urmtoarea fereastr.
n seciunea Web Browser se alege browser-ul de Internet n care se vor afia script-urile PHP
La seciunea PHPServer:
Server Name : localhost



PHP Server
Menu > Options > Servers
Local Server
"ServerName" of the server: usually "localhost/". It's the name of the server you are using also
in URL (f.e. "http://localhost/MyWeb/index.php"). It matches with the
"ServerName" property in the configuration file of Apache
"httpd.conf"!
"DocumentRoot" of the server: It's the root directory where you save your php files. f.e.
"E:\web\". It matches with the "DocumentRoot" property in the
configuration file of Apache "httpd.conf"!
Without the valid configuration you can't show the preview of
php files!
Remote Server
Do not use this feature. It's meaningful only for schools that don't want to install Apache server
on every computer. You have to insert the information about FTP account (host, username,
password) and URL of the server (f.e. www.school.org).
Web Browsers
Menu > Options > Servers
Insert file paths of web browsers you have installed.

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