Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wykres
Forum PHP.pl > Forum > Przedszkole
sky993
Otoz napisalem skrypt ktory ma za zadanie wyswietlic prosty wykres. Odpalilem go na xampp(PHP 5.3) i dziala.
Nastepnie chcialem go uruchomic na serwerze zaoferowanym przez ugu.pl. No i jak sie pewnie domyślacie nie dziala.
Oto kod:
  1. <?php
  2. //Dane do wykresu
  3.  
  4. $obecnosci=array('Wrzesien'=>15,'Pazdziernik'=>40, 'Listopad'=>33);
  5. $uczestnicy=55;
  6. // konfiguracja obrazka
  7. $szerokosc=500;
  8. $wysokosc=500;
  9. $prawy_margines=100;
  10. $lewy_margines=100;
  11. $naglowek=99;
  12. $stopka=100;
  13. $x=0;//gdzie ma rozpoczac rysowanie
  14. $x=$x+$prawy_margines;
  15. $tytul='Frekwencja';
  16. $czcionka='arial.ttf';
  17. $rozmiar_podst=10;
  18. $rozmiar_tyt=16;
  19.  
  20.  
  21.  
  22. $jednostka=($wysokosc-($naglowek+$stopka))/100;//jednostka slupka
  23.  
  24. //tworzymy kadr
  25. $kadr=ImageCreateTrueColor($szerokosc,$wysokosc);
  26.  
  27. //tworzymy kolory
  28. $niebieski=imagecolorallocate($kadr,50, 255, 255);
  29. $czarny=imagecolorallocate($kadr,0,0,0);
  30. $bialy=ImageColorAllocate($kadr,255,255,255);
  31. $rozowy=ImageColorAllocate($kadr,255,78,243);
  32.  
  33.  
  34. //robimy obramowanie oraz wypelniamy tlem
  35. ImageFill($kadr,0,0,$bialy);
  36. ImageRectangle($kadr,0,0,$szerokosc-1,$wysokosc-1,$czarny);
  37.  
  38.  
  39.  
  40. //Rysujemy wykresy. Wykres bedzie rysowany na takiej zasadzie. Poniewaz y w GD2 jest licziny "do dolu" wiec slupki beda
  41. //tak jakby odwrocone.Zeby oddac wlasciwe proporcje bedziemy rysowac dwa wypelnione prostokaty + obramowanie
  42.  
  43. foreach($obecnosci as $miesiac=>$freq)
  44. {//foreach
  45. //Obliczamy % frekwencji w danym miesiacu aby pozniej wyswietlic go na wykresie
  46. $procent=($freq/$uczestnicy)*100;
  47. $procent=round($procent,0);//zaokraglamy procent
  48.  
  49. $x=$x+30; //robimy 30 pixelowe odstepy od slupkow
  50.  
  51.  
  52. //Rysujemy slupki
  53. ImageRectangle($kadr,$x-1,400,($x+61),99,$czarny);//odpowiada za obramowanie
  54. //Teoretycznie wyswietla niezapelniona przestrzen w praktyce pokazuje zapelniona co oddaje efekt proporcji z glosow
  55. ImageFilledRectangle($kadr,$x,400,($x+60),100,$czarny);//x(wraz z przerwa),(400),(x+60)=grubosc slupka,100
  56. ImageFilledRectangle($kadr,$x,100,$x+60,(400-($procent*$jednostka)),$bialy);//zamalowuje na bialo "wolna" przestrzen.
  57. //Od 400 odejmuje procent(czyli procent*jednosta slupka, jest to y2) glosow
  58.  
  59. //Wyswietlmay nazwy miesiecy dla danego slupka oraz aktualny %
  60.  
  61.  
  62.  
  63. $wspol_x=$x;//wspolrzedna x nazwy miesiaca
  64. $wspol_y=450;//wspolrzedna y nazwy miesiaca
  65. $proc_na_wykr=round(($freq/55)*100,0);//procent na wykresie
  66.  
  67. ImageTTFText($kadr,$rozmiar_podst,0,$wspol_x,$wspol_y,$rozowy,$czcionka,$miesiac);//Wyswietlmay nazwe miesiaca
  68. ImageTTFText($kadr,$rozmiar_podst,0,$x+15,250,$rozowy,$czcionka,$proc_na_wykr."%");
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76. $x+=60; //dodajemy do x 60 poniewaz nie zrobilismy tego wczesniej. Jest to szerokosc slupka
  77. }//end foreach
  78.  
  79. //Na koniec dodajemy tytul do wykresu
  80.  
  81.  
  82. ImageTTFText($kadr,$rozmiar_tyt,0,200,50,$czarny,$czcionka,$tytul);
  83.  
  84. header('Content-type: image/png');
  85. ImagePNG($kadr);
  86.  
  87. ImageDestroy($kadr);
  88. ?>

Na serwerze ugu jest wersja PHP 5.2.

Co sie mogło stać?
Zaznaczam, ze yslalem na serwer rowniez plik z czcionka.
peter13135
jakieś błędy ? czy na ugu jest w ogóle zainstalowane gd ?
sky993
Nie wyswietla zadnych bledow, poprostu zamiast wyswietlic wykres, pojawia sie obramowanie z napisem obrazek .
Sprawdzalem gd_info(), ktora zwrocila tablice:

  1. array(12) {
  2. ["GD Version"]=>
  3. string(13) "2.0 or higher"
  4. ["FreeType Support"]=>
  5. bool(true)
  6. ["FreeType Linkage"]=>
  7. string(13) "with freetype"
  8. ["T1Lib Support"]=>
  9. bool(true)
  10. ["GIF Read Support"]=>
  11. bool(true)
  12. ["GIF Create Support"]=>
  13. bool(true)
  14. ["JPG Support"]=>
  15. bool(true)
  16. ["PNG Support"]=>
  17. bool(true)
  18. ["WBMP Support"]=>
  19. bool(true)
  20. ["XPM Support"]=>
  21. bool(false)
  22. ["XBM Support"]=>
  23. bool(false)
  24. ["JIS-mapped Japanese Font Support"]=>
  25. bool(false)
  26. }
  27.  
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.