E-learn.ro
Panou utilizatori
Utilizator Parola
Creeaza cont nou    Recupereaza parola
Login
Newsletter
Introdu adresa ta de email
Inscrie-te
Inchide panoul de utilizatori
Add to Google

Tutoriale PHP

Descarca toolbar

Toolbar E-learn.ro Facebook Twitter

WEB DEVELOPMENT  /  PHP  /  Diverse (10)

Crearea dinamica a graficelor si tabelelor cu PHP si GDChart - Partea I

15.06.2009
Crearea dinamica a graficelor si tabelelor cu PHP si GDChart - Partea I

Daca lucrezi de ceva timp cu PHP, deja stii ca limbajul face ca generarea imagilor dinamice sa devina foarte simpla: extensia GD si cateva linii de cod PHP sunt tot ce ai nevoie pentru a crea imagini JPEG, GIF sau PNG de la zero.

Total vizualizari: 6836 6836 afisari   |   Comentarii  0   |   Rating   |   (3 voturi)   |   Timp necesar: 40 min 40 min   |   Nivel de cunostiinte necesar: Avansat  Avansat

Sursa:  Devzone.zend.com  
Autor:  Devzone.zend.com
Adauga la tutoriale favorit Adauga la tutoriale favorite
Pagina:
1 23 »
comenteaza printeaza

Febra de sambata seara

Daca lucrezi de ceva timp cu PHP, deja stii ca limbajul face ca generarea imagilor dinamice sa devina foarte simpla: extensia GD si cateva linii de cod PHP sunt tot ce ai nevoie pentru a crea imagini JPEG, GIF sau PNG de la zero. Oricum, in timp ce aceasta functioneaza remarcabil de bine pentru sarcini simple, poate deveni obositor si complicat daca trebuie sa generezi imagini mai complexe, cum ar fi diagrame si grafice, in timp real.

De exemplu, sa presupunem ca ai un set de date pe care vrei sa le transformi intr-un grafic de tip pie. Pentru a ajunge la rezultatul asteptat, ar trebui sa alegi culori pentru fiecare portiune a graficului, sa calculezi punctele finale ale arcului corespunzatoare dimensiunilor portiunilor, sa desenez arcele si liniile, sa umpli fiecare portiune in culori diferite, sa editezi un text descriptiv si o valoare procentuala aferenta fiecarei portiuni si sa randezi imaginea finala. Toate aceste lucruri pot necesita intre 80-100 linii de cod si cateva ore de corectare ... in mod clar nu este cel mai amuzant mod de a-ti petrece o seara!

Oricum, exista o alternativa mai simpla: extensia GDChart, care furnizeaza un API complet pentru generarea eficienta a graficelor si a diagramelor. Aceasta extensie, care este disponibila in mod gratuit de la PECL, poate reduce in mod semnificativ cantitatea de munca implicata in generarea dinamica a reprezentarilor datelor numerice in timp real. In urmatoarele pagini, iti voi prezenta aceasta extensie, ilustrand aspectele sale importante si aratandu-ti cat de simplu este de implementat.

Sa punem totul cap la cap

Suportul GDChart din PHP este furnizat prin extensia PECL ext/gdchart, care este dezvoltata de catre Ilia Alshanetsky si Rasmus Lerdorf, si ofera un API orientat pe obiecte, in vederea generarii de diagrame. Nu uita totusi ca aceasta extensie presupune ca versiunea ta PHP include suport GD. Pe sistemele UNIX, aceasta se realizeaza prin descarcarea si instalarea librariilor GD de la http://www.boutell.com/gd/ (daca nu le detii deja) si apoi compiland PHP cu directiva --with-gd.

De indata ce ai realizat aceasta, poti porni instalarea extensiei GDChart utilizand comanda pecl. Pentru moment, nu exista o versiune pentru Windows.; urmatoarele instructiuni vor functiona doar pe un sistem *NIX.

shell# pecl install gdchart-beta

Installer-ul PECL va descarca acum codul sursa, il va compila si instala in locatia potrivita din sistemul tau.

Ca alternativa, poti descarca manual arhiva cu sursa (v0.2.0 in prezent) de la http://pecl.php.net/package/GDChart si o poti compila intr-un modul PHP cu phpize:

shell# cd gdchart-0.2.0
shell# phpize
shell# ./configure
shell# make
shell# make install

Aceasta procedura ar trebui sa creeze un modul PHP numit gdchart.so in directorul PHP cu extensii. Ar trebui sa activezi extensia in fisierul de configurare php.ini, sa restartezi serverul de web si sa verifici daca extensia este activa printr-o apelare rapida a phpinfo():

Merita sa amintim aici o observatie importanta din documentatia extensiei: daca la compilare intalnesti erori referitoare la 'GDC_title_font', verifica fisierul php_config.h si asigura-te ca include o definitie pentru LIBFREETYPE. Instructiuni mai detaliate in acest scop pot fi gasite in documentatia inclusa impreuna cu codul sursa.

Dansul ploii

Daca extensia este instalata si functionala, este timpul sa faci un test. Iata un exemplu banal care genereaza un grafic de tip bara, utilizand un set de date referitoare la precipitatiile anuale:

<?PHP
// initializeaza obiectul cu tipul de grafic
$gdc = new GDChart(GDChart::BAR);
 
// adauga valori
$gdc->addValues(array(18234, 16484, 16574, 17464, 19474));
 
// adauga etichetele pentru axa X
$gdc->setLabels(array('2002', '2003', '2004', '2005', '2006'));
 
// genereaza grafic in format PNG si afiseaza-l
header('Content-Type:image/png');
echo $gdc->out(300,200,GDChart::PNG);
?>

Prima linie din acest script creeaza o noua instanta a clasei GDChart, transmitand constructorului o constanta care indica tipul de diagrama. Apoi, metoda addValues() este utilizata pentru a adauga valorile numerice din grafic (ca array), in timp ce metoda setLabels() este folosita pentru a atasa axei X etichetele corespunzatoare fiecarei bare. In final, metoda out() pregateste si randeaza graficul.

Parametrii transmisi metodei out() sunt: inaltimea si latimea imaginii, formatul acesteia (GIF, JPEG, WBMP sau PNG), si o denumire optionala a fisierului. In acest caz, deoarece imaginea rezultata este afisata direct in browser, nu este necesar sa aiba un nume.

Iata cum arata rezultatul:

GDChart suporta 20 de formate diferite de diagrame, deci este destul de usor sa reprezentam aceleasi date, sa spunem printr-o diagrama liniara, doar schimband valoarea trimisa catre constructor:

<?PHP
// initializeaza obiectul cu tipul de grafic 
$gdc = new GDChart(GDChart::LINE);
 
// adauga valori
$gdc->addValues(array(18234, 16484, 16574, 17464, 19474));
 
// adauga etichetele pentru axa X
$gdc->setLabels(array('2002', '2003', '2004', '2005', '2006'));
 
// genereaza grafic in format PNG si afiseaza-l
header('Content-Type:image/png');
echo $gdc->out(300,200,GDChart::PNG);
?>

Si iata cum arata rezultatul revizuit:

Preferi un grafic de tip suprafata? Nicio problema:

<?PHP
// initializeaza obiectul cu tipul de grafic 
$gdc = new GDChart(GDChart::AREA);
 
// adauga valori
$gdc->addValues(array(18234, 16484, 16574, 17464, 19474));
 
// adauga etichetele pentru axa X
$gdc->setLabels(array('2002', '2003', '2004', '2005', '2006'));
 
// genereaza grafic in format PNG si afiseaza-l
header('Content-Type:image/png');
echo $gdc->out(300,200,GDChart::PNG);
?>

Iata rezultatul:

Pagina:
1 23 »
comenteaza printeaza
Alte tutoriale PHP:
Noteaza acest tutorial
Rating tutorial
 
(3 voturi)
Pentru a nota acest tutorial, trebuie sa fii logat!
Posteaza un comentariu
Pentru a posta un comentariu, trebuie sa fii logat!
0 TOP UTILIZATORI* 0 0
Tutoriale scrise de claibornelara
claibornelara Rang utilizator claibornelara - Incepator
4155
Tutoriale scrise de kheops
kheops Rang utilizator kheops - Mediu
4084
Tutoriale scrise de ellarichards
ellarichards Rang utilizator ellarichards - Incepator
4060
Tutoriale scrise de mcuemica
mcuemica Rang utilizator mcuemica - Incepator
4035
Tutoriale scrise de emonclercheap
emonclercheap Rang utilizator emonclercheap - Incepator
3855
* Acest top reprezinta punctajele acumulate in ultimele 30 de zile.
XML Fireworks Sony Vegas Dreamweaver Illustrator MySQL Powerpoint SEO JSON Excel StyleSheet Word CSS Flash Python AJAX HTML COREL DRAW Action Script Photoshop Fotografie Outlook RoR Lightroom SWF PHP PSD Java Verilog Gimp Vista Bridge Ruby on Rails XHTML Javascript Swift 3D
Promovare:
Daca faci parte din comunitatea E-learn.ro si doresti promovarea acesteia, poti accesa pagina de promovare.
Arhiva newsletter:
Daca ai ratat un numar mai vechi, sau vrei sa revezi care au fost noutatile E-learn.ro la un moment dat, poti accesa arhiva de newslettere.
  Copyright © 2008-2013 E-LEARN.ro. Toate drepturile rezervate. Termeni si conditii.
Conceput si realizat de Neokinetics Software