|
| Makaleler |
| Toplam Makale |
3330 |
| Yayında |
3150 |
| Bekleyenler |
180 |
| Görüntüleme |
13320718 |
|
|
|
|
PHP ile Grafik Örneği
Bircok konuda oldugu gibi PHP, Web uygulamalari ve diger tüm bilgisayar ve teknoloji alanlarinda "Türkce Kaynak" sorunumuzun oldugu acik bir gercek. Türkce kitaplarda ve internet sitelerinde genelde cok az bir yer verilen "PHP ve Grafik Uygulamalari" konusunda bir seyler yapmak isteyen arkadaslara biraz olsun yardimci olabilmek icin 2 basit örnek hazirladim.
Örnekler belki profesyonel siteler yada sirketler icin ideal olmayabilir ama orta düzey bir web sitesinde verileri grafige dökmek icin kullanilabilir diye düsünüyorum.
Burada 2 adet örnek var biri "haftalik.php" ve digeri "aylik.php" isimlerinden de anlasilacagi üzere haftalik ve aylik olarak elimizdeki verileri "SUTUN" grafige döküyor. Her ikisi de tek baslarina ya da HTML icinden cagirilabilir, HTML icinden cagirmak isterseniz KOD: ya da KOD: gibi bir ifade kullanabilirsiniz.
AYRICA; bu sekilde img olarak cagiracaksaniz, kaynakta biraz degisiklik yapip grafik dosyasini cagirirken KOD:- <img src="aylik.php=?w=400&h=300&grid=5">
gibi bir ifade kullanabilirsiniz, böyle daha esnek olur sanirim.
Kodlar az bucuk farkli kaynaklardan aldigim fikir disinda tamamen bana ait, fazla ugrasmadim yani optimize edilmesi gerekebilir. Örneklerin kaynak kodlarini aynen veriyorum, isteyen istedigi degisikligi yapip (sag taraftaki imza bölümünü v.s. degistirip :)) istedigi sitede kullanabilir. Tek istedigim, bu örnekleri herhangi bir yerde kullandiginizda yilmazsuslu@hotmail.com ya da brandon@yyu.edu.tr adreslerinden birine bir mail atip haber vermeniz olacaktir. Bunu yaparsaniz cok sevinirim. Ayrica acil sorulariniz olursa bana 33537066 nolu ICQ dan ulasabilirsiniz...
Sevgiler...
PHP:-
- <?php
-
-
-
-
-
-
- yilmazsuslu@hotmail.com
-
- header ("Content-type: image/png");
-
- $w = 500;
- $h = 250;
- $Baslik = "2002 Yili Aylik Ziyaretci Istatistigi";
- $BaslikFont = 3;
- $GraphName = "TEKIL ZIYARET / AY";
- $BoslukLeft = ($w-(($BaslikFont+3)*strlen("$Baslik")))/2;
- $BoslukTop = ($h+(5*strlen("$GraphName")))/2;
- $YatayGrid = 5;
- $LeftM = ($w*(12/100))/2;
- $TopM = ($h*(12/100))/2;
- $SutunGen = $w*6/100;
-
-
-
-
-
-
-
-
- $Veri[0] = 125;
- $Veri[1] = 570;
- $Veri[2] = 870;
- $Veri[3] = 918;
- $Veri[4] = 759;
- $Veri[5] = 298;
- $Veri[6] = 890;
- $Veri[7] = 987;
- $Veri[8] = 1280;
- $Veri[9] = 318;
- $Veri[10] = 419;
- $Veri[11] = 697;
- $Aylar = array("Oca","Sub","Mar","Nis","May","Haz","Tem","Agu","Eyl","Eki","Kas", "Ara");
-
-
-
-
- $VeriKova = array_values($Veri);
- sort($VeriKova);
- $Min = $VeriKova[0];
- $Max = $VeriKova[11];
- $Top = array_sum($Veri);
- $Resim = imagecreate($w,$h);
-
-
-
-
- $Siyah = imagecolorAllocate($Resim, 0, 0, 0);
- $Beyaz = imagecolorallocate($Resim, 255, 255, 255);
- $Mavi = imagecolorallocate($Resim, 100, 100, 255);
- $Kirmizi = imagecolorAllocate($Resim, 255, 0, 0);
- $Yesil = imagecolorAllocate($Resim, 0, 150, 0);
- $Gri = imagecolorAllocate($Resim, 200, 200, 200);
-
-
-
-
- imagefilledrectangle($Resim, 0, 0, $w, $h ,$Beyaz);
- imagerectangle($Resim, 0, 0, $w-1, $h-1, $Siyah);
-
-
-
-
- $CAAM = ($h-($TopM*4))/$YatayGrid;
- $Cizgi[0] = $TopM*2;
- $MaxTemp = $Max;
- if(strlen($MaxTemp)>=3):
- $CizgiSayim = strrev(substr(strrev("$MaxTemp"), 0, 2));
- $WhileGo = 100;
- else:
- $CizgiSayim = strrev(substr(strrev("$MaxTemp"), 0, 1));
- $WhileGo = 10;
- endif;
- while(intval($CizgiSayim)<$WhileGo)
- {
- $CizgiSayim++;
- $MaxTemp++;
- }
- $CizgiSayi[0] = $MaxTemp;
- for($i=0; $i<=$YatayGrid; $i++)
- {
- if(empty($CizgiSayi[$i]))
- {
- $CizgiSayi[$i] = round($MaxTemp*(($YatayGrid-$i)/$YatayGrid));
- $Cizgi[$i] = $Cizgi[$i-1]+$CAAM;
- }
- switch(strlen($CizgiSayi[$i]))
- {
- case "1" ; $spacer = " "; break;
- case "2" ; $spacer = " "; break;
- case "3" ; $spacer = " "; break;
- case "4" ; $spacer = ""; break;
- }
- imageline($Resim,$LeftM*2,$Cizgi[$i], $w-$LeftM, $Cizgi[$i],$Gri);
- imagestring($Resim, 2, $LeftM-($LeftM/4), $Cizgi[$i]-7, "$spacer$CizgiSayi[$i]", $siyah);
- }
-
-
-
-
-
- $Sutun = ($w-(3*$LeftM))/12;
- $GrafikAlani = round($h-($TopM*4));
- $Birim = $GrafikAlani/$MaxTemp;
- for($i=0; $i<12; $i++)
- {
- if($Veri[$i]==$Max) : $Renk = $Kirmizi;
- elseif($Veri[$i]==$Min) : $Renk = $Yesil;
- else : $Renk = $Mavi;
- endif;
- $x1 = 2.1*$LeftM+($Sutun*$i);
- $y1 = ($TopM*2)+$GrafikAlani-($Birim*$Veri[$i]);
- $x2 = $x1+$SutunGen;
- $y2 = $h-$TopM*2;
- switch(strlen($Veri[$i]))
- {
- case "1" : $xcarpan = 2.5; break;
- case "2" : $xcarpan = 2.475; break;
- case "3" : $xcarpan = 2.330; break;
- case "4" : $xcarpan = 2.300; break;
- }
- imagefilledRectangle($Resim, $x1, $y1, $x2, $y2, $Renk);
- imageRectangle($Resim, $x1, $y1, $x2, $y2, $Siyah);
- imagestring($Resim,2,2.335*$LeftM+($Sutun*$i),$h-(2*$TopM),"$Aylar[$i]",$Siyah);
- imagestring($Resim,1,$xcarpan*$LeftM+($Sutun*$i),$y1-9,"$Veri[$i]",$Siyah);
- }
-
-
-
-
-
- imageline($Resim,$LeftM*2,$h-$TopM*2,$w-$LeftM,$h-$TopM*2,$Siyah);
- imageline($Resim,$LeftM*2,$TopM,$LeftM*2,$h-$TopM*2,$Siyah);
-
-
-
-
- imagestring($Resim,$BaslikFont,$BoslukLeft+1,(1/$BaslikFont)+3,"$Baslik",$Gri);
- imagestring($Resim,$BaslikFont,$BoslukLeft,1/$BaslikFont+2,"$Baslik",$Kirmizi);
- imagestring($Resim,1,$LeftM*2, $h-$TopM,"Max=$Max",$Kirmizi);
- imagestring($Resim,1,$LeftM*4, $h-$TopM,"Min=$Min",$Yesil);
- imagestring($Resim,1,$LeftM*6, $h-$TopM,"Toplam=$Top",$Mavi);
- imagestringup($Resim,1,3,$BoslukTop,"$GraphName",$Kirmizi);
- $mysign= "M. YILMAZ SUSLU, Subat 2003, VAN";
- imagestringup($Resim,1,$w-10,$h-(strlen($mysign)*0.2), $mysign,$Gri);
- imagepng($Resim);
- imagedestroy($Resim);
- ?>
-
-
-
- <?php
-
-
-
-
-
-
- yilmazsuslu@hotmail.com
-
- header ("Content-type: image/png");
-
- $w = 500;
- $h = 250;
- $Baslik = "Subat Ayi 3. Hafta Satislar";
- $BaslikFont = 3;
- $GraphName = "ADET / GUN";
- $BoslukLeft = ($w-(($BaslikFont+3)*strlen("$Baslik")))/2;
- $BoslukTop = ($h+(5*strlen("$GraphName")))/2;
- $YatayGrid = 10;
- $LeftM = ($w*(12/100))/2;
- $TopM = ($h*(12/100))/2;
- $SutunGen = $w*8/100;
-
-
-
-
-
-
-
-
- $Veri[0] = 50;
- $Veri[1] = 98;
- $Veri[2] = 130;
- $Veri[3] = 58;
- $Veri[4] = 62;
- $Veri[5] = 168;
- $Veri[6] = 186;
- $Gunler = array(
| | |